/**
 * Copyright (C) 2013-2024 Nanjing Pengyun Network Technology Co., Ltd.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */ 
// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: src/main/resources/protocol-model/broadcastlog.proto

/**
    Temporary disable generating protobuf classes, since the way of building a
    protobuf class is to use their corresponding builder class. However,
    there are two performance issues with this method:

    1. the builder class internally has the same variables as their original
    class. To build a original class, builder has to copy all its variable
    to a new class and return the class instance.
    2. the builder uses ArrayList instead of LinkedList for repeated
    fields.

    The manually-crafted builder class gets rid of the above two issues.
    However, we can't generate the builder classes any more.

    TODO, we have to find a better way to improve the performance and
    meanwhile allow protobuf to generate classes.
**/
package py.proto;


public final class Broadcastlog {
  private Broadcastlog() {}
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistry registry) {
  }
  /**
   * Protobuf enum {@code PBIOUnitResult}
   */
  public enum PBIOUnitResult
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>OK = 1;</code>
     */
    OK(0, 1),
    /**
     * <code>OutOfRange = 2;</code>
     */
    OutOfRange(1, 2),
    /**
     * <code>InputHasNoData = 3;</code>
     */
    InputHasNoData(2, 3),
    /**
     * <code>ChecksumMismatched = 4;</code>
     */
    ChecksumMismatched(3, 4),
    /**
     * <code>SecondaryNotStable = 5;</code>
     *
     * <pre>
     * presecondary can receive the write request, but the write request not be included in quorum member.
     * </pre>
     */
    SecondaryNotStable(4, 5),
    /**
     * <code>Free = 6;</code>
     *
     * <pre>
     * when the page never writes, if you read the page, then response Free.
     * </pre>
     */
    Free(5, 6),
    /**
     * <code>PrimaryCommitted = 7;</code>
     */
    PrimaryCommitted(6, 7),
    /**
     * <code>BroadcastFailed = 8;</code>
     *
     * <pre>
     * this happens when primary failed broadcasting to check the result of secondaries
     * </pre>
     */
    BroadcastFailed(7, 8),
    /**
     * <code>Exhausted = 9;</code>
     *
     * <pre>
     * there is no enough memory for saving the request unit, especially for write.
     * </pre>
     */
    Exhausted(8, 9),
    /**
     * <code>Skip = 10;</code>
     *
     * <pre>
     * the server meet exception and can not go on servicing the left request units, then the units will be set to Skip.
     * </pre>
     */
    Skip(9, 10),
    /**
     * <code>MergeFail = 11;</code>
     *
     * <pre>
     * when correcting a page or reading data from secondaries, should merge all response,reset the result when failing to merge.
     * </pre>
     */
    MergeFail(10, 11),
    /**
     * <code>MergeOk = 12;</code>
     *
     * <pre>
     * when merging read respones, the base response unit may be free status, others responses has data, so after merging, its status will become MergeOk
     * </pre>
     */
    MergeOk(11, 12),
    ;

    /**
     * <code>OK = 1;</code>
     */
    public static final int OK_VALUE = 1;
    /**
     * <code>OutOfRange = 2;</code>
     */
    public static final int OutOfRange_VALUE = 2;
    /**
     * <code>InputHasNoData = 3;</code>
     */
    public static final int InputHasNoData_VALUE = 3;
    /**
     * <code>ChecksumMismatched = 4;</code>
     */
    public static final int ChecksumMismatched_VALUE = 4;
    /**
     * <code>SecondaryNotStable = 5;</code>
     *
     * <pre>
     * presecondary can receive the write request, but the write request not be included in quorum member.
     * </pre>
     */
    public static final int SecondaryNotStable_VALUE = 5;
    /**
     * <code>Free = 6;</code>
     *
     * <pre>
     * when the page never writes, if you read the page, then response Free.
     * </pre>
     */
    public static final int Free_VALUE = 6;
    /**
     * <code>PrimaryCommitted = 7;</code>
     */
    public static final int PrimaryCommitted_VALUE = 7;
    /**
     * <code>BroadcastFailed = 8;</code>
     *
     * <pre>
     * this happens when primary failed broadcasting to check the result of secondaries
     * </pre>
     */
    public static final int BroadcastFailed_VALUE = 8;
    /**
     * <code>Exhausted = 9;</code>
     *
     * <pre>
     * there is no enough memory for saving the request unit, especially for write.
     * </pre>
     */
    public static final int Exhausted_VALUE = 9;
    /**
     * <code>Skip = 10;</code>
     *
     * <pre>
     * the server meet exception and can not go on servicing the left request units, then the units will be set to Skip.
     * </pre>
     */
    public static final int Skip_VALUE = 10;
    /**
     * <code>MergeFail = 11;</code>
     *
     * <pre>
     * when correcting a page or reading data from secondaries, should merge all response,reset the result when failing to merge.
     * </pre>
     */
    public static final int MergeFail_VALUE = 11;
    /**
     * <code>MergeOk = 12;</code>
     *
     * <pre>
     * when merging read respones, the base response unit may be free status, others responses has data, so after merging, its status will become MergeOk
     * </pre>
     */
    public static final int MergeOk_VALUE = 12;


    public final int getNumber() { return value; }

    public static PBIOUnitResult valueOf(int value) {
      switch (value) {
        case 1: return OK;
        case 2: return OutOfRange;
        case 3: return InputHasNoData;
        case 4: return ChecksumMismatched;
        case 5: return SecondaryNotStable;
        case 6: return Free;
        case 7: return PrimaryCommitted;
        case 8: return BroadcastFailed;
        case 9: return Exhausted;
        case 10: return Skip;
        case 11: return MergeFail;
        case 12: return MergeOk;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<PBIOUnitResult>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static com.google.protobuf.Internal.EnumLiteMap<PBIOUnitResult>
        internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<PBIOUnitResult>() {
            public PBIOUnitResult findValueByNumber(int number) {
              return PBIOUnitResult.valueOf(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(index);
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return py.proto.Broadcastlog.getDescriptor().getEnumTypes().get(0);
    }

    private static final PBIOUnitResult[] VALUES = values();

    public static PBIOUnitResult valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      return VALUES[desc.getIndex()];
    }

    private final int index;
    private final int value;

    private PBIOUnitResult(int index, int value) {
      this.index = index;
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:PBIOUnitResult)
  }

  /**
   * Protobuf enum {@code PBBroadcastLogStatus}
   */
  public enum PBBroadcastLogStatus
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>Creating = 1;</code>
     *
     * <pre>
     * this status must come from datanode
     * </pre>
     */
    Creating(0, 1),
    /**
     * <code>Created = 2;</code>
     *
     * <pre>
     * this status must come from datanode
     * </pre>
     */
    Created(1, 2),
    /**
     * <code>Committed = 3;</code>
     *
     * <pre>
     * this status must come from coordinator
     * </pre>
     */
    Committed(2, 3),
    /**
     * <code>Abort = 4;</code>
     */
    Abort(3, 4),
    /**
     * <code>AbortConfirmed = 5;</code>
     */
    AbortConfirmed(4, 5),
    ;

    /**
     * <code>Creating = 1;</code>
     *
     * <pre>
     * this status must come from datanode
     * </pre>
     */
    public static final int Creating_VALUE = 1;
    /**
     * <code>Created = 2;</code>
     *
     * <pre>
     * this status must come from datanode
     * </pre>
     */
    public static final int Created_VALUE = 2;
    /**
     * <code>Committed = 3;</code>
     *
     * <pre>
     * this status must come from coordinator
     * </pre>
     */
    public static final int Committed_VALUE = 3;
    /**
     * <code>Abort = 4;</code>
     */
    public static final int Abort_VALUE = 4;
    /**
     * <code>AbortConfirmed = 5;</code>
     */
    public static final int AbortConfirmed_VALUE = 5;


    public final int getNumber() { return value; }

    public static PBBroadcastLogStatus valueOf(int value) {
      switch (value) {
        case 1: return Creating;
        case 2: return Created;
        case 3: return Committed;
        case 4: return Abort;
        case 5: return AbortConfirmed;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<PBBroadcastLogStatus>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static com.google.protobuf.Internal.EnumLiteMap<PBBroadcastLogStatus>
        internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<PBBroadcastLogStatus>() {
            public PBBroadcastLogStatus findValueByNumber(int number) {
              return PBBroadcastLogStatus.valueOf(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(index);
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return py.proto.Broadcastlog.getDescriptor().getEnumTypes().get(1);
    }

    private static final PBBroadcastLogStatus[] VALUES = values();

    public static PBBroadcastLogStatus valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      return VALUES[desc.getIndex()];
    }

    private final int index;
    private final int value;

    private PBBroadcastLogStatus(int index, int value) {
      this.index = index;
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:PBBroadcastLogStatus)
  }

  /**
   * Protobuf enum {@code RequestOption}
   */
  public enum RequestOption
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>CheckPrimary = 1;</code>
     */
    CheckPrimary(0, 1),
    /**
     * <code>CheckSecondary = 2;</code>
     */
    CheckSecondary(1, 2),
    /**
     * <code>ConfirmUnreachable = 3;</code>
     */
    ConfirmUnreachable(2, 3),
    ;

    /**
     * <code>CheckPrimary = 1;</code>
     */
    public static final int CheckPrimary_VALUE = 1;
    /**
     * <code>CheckSecondary = 2;</code>
     */
    public static final int CheckSecondary_VALUE = 2;
    /**
     * <code>ConfirmUnreachable = 3;</code>
     */
    public static final int ConfirmUnreachable_VALUE = 3;


    public final int getNumber() { return value; }

    public static RequestOption valueOf(int value) {
      switch (value) {
        case 1: return CheckPrimary;
        case 2: return CheckSecondary;
        case 3: return ConfirmUnreachable;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<RequestOption>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static com.google.protobuf.Internal.EnumLiteMap<RequestOption>
        internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<RequestOption>() {
            public RequestOption findValueByNumber(int number) {
              return RequestOption.valueOf(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(index);
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return py.proto.Broadcastlog.getDescriptor().getEnumTypes().get(2);
    }

    private static final RequestOption[] VALUES = values();

    public static RequestOption valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      return VALUES[desc.getIndex()];
    }

    private final int index;
    private final int value;

    private RequestOption(int index, int value) {
      this.index = index;
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:RequestOption)
  }

  /**
   * Protobuf enum {@code ReadCause}
   */
  public enum ReadCause
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>fetch = 1;</code>
     *
     * <pre>
     * coordinator reads from primary.
     * </pre>
     */
    fetch(0, 1),
    /**
     * <code>correction = 2;</code>
     *
     * <pre>
     * primary or secondary reads from secondary or primary when fetching data for correction.
     * </pre>
     */
    correction(1, 2),
    /**
     * <code>merge = 3;</code>
     *
     * <pre>
     * coordinator reads from secondaries.
     * </pre>
     */
    merge(2, 3),
    /**
     * <code>check = 4;</code>
     *
     * <pre>
     * when reading, send a check request to S for supporting P.
     * </pre>
     */
    check(3, 4),
    ;

    /**
     * <code>fetch = 1;</code>
     *
     * <pre>
     * coordinator reads from primary.
     * </pre>
     */
    public static final int fetch_VALUE = 1;
    /**
     * <code>correction = 2;</code>
     *
     * <pre>
     * primary or secondary reads from secondary or primary when fetching data for correction.
     * </pre>
     */
    public static final int correction_VALUE = 2;
    /**
     * <code>merge = 3;</code>
     *
     * <pre>
     * coordinator reads from secondaries.
     * </pre>
     */
    public static final int merge_VALUE = 3;
    /**
     * <code>check = 4;</code>
     *
     * <pre>
     * when reading, send a check request to S for supporting P.
     * </pre>
     */
    public static final int check_VALUE = 4;


    public final int getNumber() { return value; }

    public static ReadCause valueOf(int value) {
      switch (value) {
        case 1: return fetch;
        case 2: return correction;
        case 3: return merge;
        case 4: return check;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<ReadCause>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static com.google.protobuf.Internal.EnumLiteMap<ReadCause>
        internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<ReadCause>() {
            public ReadCause findValueByNumber(int number) {
              return ReadCause.valueOf(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(index);
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return py.proto.Broadcastlog.getDescriptor().getEnumTypes().get(3);
    }

    private static final ReadCause[] VALUES = values();

    public static ReadCause valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      return VALUES[desc.getIndex()];
    }

    private final int index;
    private final int value;

    private ReadCause(int index, int value) {
      this.index = index;
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:ReadCause)
  }

  /**
   * Protobuf enum {@code PBCopyPageStatus}
   *
   * <pre>
   *-------------------------------------- for copy page begin--------------------
   * </pre>
   */
  public enum PBCopyPageStatus
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>CopyPageStart = 0;</code>
     *
     * <pre>
     * the primary has responsed the joining secondary that you should migration pages from
     * primary, the process should do some things:
     * destroy indexer and create new indexer;
     * update snapshot metadata;
     * set catch up log and remove the logs which id are less than the id of cacheuplog;
     * initializing the objects for migration.
     * wait for the both plal pointer of primary and joining secondary move to catch up log.
     * </pre>
     */
    CopyPageStart(0, 0),
    /**
     * <code>CopyPageProcessing = 2;</code>
     *
     * <pre>
     * wait for copying page according bitmap.
     * </pre>
     */
    CopyPageProcessing(1, 2),
    /**
     * <code>CopyPageDone = 3;</code>
     *
     * <pre>
     * all pages have been copied from  primary.
     * </pre>
     */
    CopyPageDone(2, 3),
    /**
     * <code>CopyPageTimeout = 4;</code>
     *
     * <pre>
     * when the primary pushes pages to pre-secondary, after some time the primary didn`t receive the pre-secondary
     * response.
     * </pre>
     */
    CopyPageTimeout(3, 4),
    /**
     * <code>CopyPageAbort = 5;</code>
     *
     * <pre>
     * meeting fetal error which is not recovery when migration.
     * </pre>
     */
    CopyPageAbort(4, 5),
    ;

    /**
     * <code>CopyPageStart = 0;</code>
     *
     * <pre>
     * the primary has responsed the joining secondary that you should migration pages from
     * primary, the process should do some things:
     * destroy indexer and create new indexer;
     * update snapshot metadata;
     * set catch up log and remove the logs which id are less than the id of cacheuplog;
     * initializing the objects for migration.
     * wait for the both plal pointer of primary and joining secondary move to catch up log.
     * </pre>
     */
    public static final int CopyPageStart_VALUE = 0;
    /**
     * <code>CopyPageProcessing = 2;</code>
     *
     * <pre>
     * wait for copying page according bitmap.
     * </pre>
     */
    public static final int CopyPageProcessing_VALUE = 2;
    /**
     * <code>CopyPageDone = 3;</code>
     *
     * <pre>
     * all pages have been copied from  primary.
     * </pre>
     */
    public static final int CopyPageDone_VALUE = 3;
    /**
     * <code>CopyPageTimeout = 4;</code>
     *
     * <pre>
     * when the primary pushes pages to pre-secondary, after some time the primary didn`t receive the pre-secondary
     * response.
     * </pre>
     */
    public static final int CopyPageTimeout_VALUE = 4;
    /**
     * <code>CopyPageAbort = 5;</code>
     *
     * <pre>
     * meeting fetal error which is not recovery when migration.
     * </pre>
     */
    public static final int CopyPageAbort_VALUE = 5;


    public final int getNumber() { return value; }

    public static PBCopyPageStatus valueOf(int value) {
      switch (value) {
        case 0: return CopyPageStart;
        case 2: return CopyPageProcessing;
        case 3: return CopyPageDone;
        case 4: return CopyPageTimeout;
        case 5: return CopyPageAbort;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<PBCopyPageStatus>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static com.google.protobuf.Internal.EnumLiteMap<PBCopyPageStatus>
        internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<PBCopyPageStatus>() {
            public PBCopyPageStatus findValueByNumber(int number) {
              return PBCopyPageStatus.valueOf(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(index);
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return py.proto.Broadcastlog.getDescriptor().getEnumTypes().get(4);
    }

    private static final PBCopyPageStatus[] VALUES = values();

    public static PBCopyPageStatus valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      return VALUES[desc.getIndex()];
    }

    private final int index;
    private final int value;

    private PBCopyPageStatus(int index, int value) {
      this.index = index;
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:PBCopyPageStatus)
  }

  public interface PBBroadcastLogOrBuilder extends
      // @@protoc_insertion_point(interface_extends:PBBroadcastLog)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>required int64 logUUID = 1;</code>
     */
    boolean hasLogUUID();
    /**
     * <code>required int64 logUUID = 1;</code>
     */
    long getLogUUID();

    /**
     * <code>required int64 logId = 2;</code>
     */
    boolean hasLogId();
    /**
     * <code>required int64 logId = 2;</code>
     */
    long getLogId();

    /**
     * <code>required int64 offset = 3;</code>
     */
    boolean hasOffset();
    /**
     * <code>required int64 offset = 3;</code>
     */
    long getOffset();

    /**
     * <code>required int64 checksum = 4;</code>
     */
    boolean hasChecksum();
    /**
     * <code>required int64 checksum = 4;</code>
     */
    long getChecksum();

    /**
     * <code>required int32 length = 5;</code>
     */
    boolean hasLength();
    /**
     * <code>required int32 length = 5;</code>
     */
    int getLength();

    /**
     * <code>required .PBBroadcastLogStatus logStatus = 6;</code>
     */
    boolean hasLogStatus();
    /**
     * <code>required .PBBroadcastLogStatus logStatus = 6;</code>
     */
    py.proto.Broadcastlog.PBBroadcastLogStatus getLogStatus();

    /**
     * <code>required int32 snapshotVersion = 7;</code>
     */
    boolean hasSnapshotVersion();
    /**
     * <code>required int32 snapshotVersion = 7;</code>
     */
    int getSnapshotVersion();
  }
  /**
   * Protobuf type {@code PBBroadcastLog}
   */
  public static final class PBBroadcastLog extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:PBBroadcastLog)
      PBBroadcastLogOrBuilder {
    // Use PBBroadcastLog.newBuilder() to construct.
    private PBBroadcastLog(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private PBBroadcastLog(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final PBBroadcastLog defaultInstance;
    public static PBBroadcastLog getDefaultInstance() {
      return defaultInstance;
    }

    public PBBroadcastLog getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private PBBroadcastLog(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              logUUID_ = input.readInt64();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              logId_ = input.readInt64();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              offset_ = input.readInt64();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              checksum_ = input.readInt64();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              length_ = input.readInt32();
              break;
            }
            case 48: {
              int rawValue = input.readEnum();
              py.proto.Broadcastlog.PBBroadcastLogStatus value = py.proto.Broadcastlog.PBBroadcastLogStatus.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(6, rawValue);
              } else {
                bitField0_ |= 0x00000020;
                logStatus_ = value;
              }
              break;
            }
            case 56: {
              bitField0_ |= 0x00000040;
              snapshotVersion_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return py.proto.Broadcastlog.internal_static_PBBroadcastLog_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return py.proto.Broadcastlog.internal_static_PBBroadcastLog_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              py.proto.Broadcastlog.PBBroadcastLog.class, py.proto.Broadcastlog.PBBroadcastLog.Builder.class);
    }

    public static com.google.protobuf.Parser<PBBroadcastLog> PARSER =
        new com.google.protobuf.AbstractParser<PBBroadcastLog>() {
      public PBBroadcastLog parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new PBBroadcastLog(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser<PBBroadcastLog> getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int LOGUUID_FIELD_NUMBER = 1;
    private long logUUID_;
    /**
     * <code>required int64 logUUID = 1;</code>
     */
    public boolean hasLogUUID() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required int64 logUUID = 1;</code>
     */
    public long getLogUUID() {
      return logUUID_;
    }

    public static final int LOGID_FIELD_NUMBER = 2;
    private long logId_;
    /**
     * <code>required int64 logId = 2;</code>
     */
    public boolean hasLogId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required int64 logId = 2;</code>
     */
    public long getLogId() {
      return logId_;
    }

    public static final int OFFSET_FIELD_NUMBER = 3;
    private long offset_;
    /**
     * <code>required int64 offset = 3;</code>
     */
    public boolean hasOffset() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>required int64 offset = 3;</code>
     */
    public long getOffset() {
      return offset_;
    }

    public static final int CHECKSUM_FIELD_NUMBER = 4;
    private long checksum_;
    /**
     * <code>required int64 checksum = 4;</code>
     */
    public boolean hasChecksum() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * <code>required int64 checksum = 4;</code>
     */
    public long getChecksum() {
      return checksum_;
    }

    public static final int LENGTH_FIELD_NUMBER = 5;
    private int length_;
    /**
     * <code>required int32 length = 5;</code>
     */
    public boolean hasLength() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * <code>required int32 length = 5;</code>
     */
    public int getLength() {
      return length_;
    }

    public static final int LOGSTATUS_FIELD_NUMBER = 6;
    private py.proto.Broadcastlog.PBBroadcastLogStatus logStatus_;
    /**
     * <code>required .PBBroadcastLogStatus logStatus = 6;</code>
     */
    public boolean hasLogStatus() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     * <code>required .PBBroadcastLogStatus logStatus = 6;</code>
     */
    public py.proto.Broadcastlog.PBBroadcastLogStatus getLogStatus() {
      return logStatus_;
    }

    public static final int SNAPSHOTVERSION_FIELD_NUMBER = 7;
    private int snapshotVersion_;
    /**
     * <code>required int32 snapshotVersion = 7;</code>
     */
    public boolean hasSnapshotVersion() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    /**
     * <code>required int32 snapshotVersion = 7;</code>
     */
    public int getSnapshotVersion() {
      return snapshotVersion_;
    }

    private void initFields() {
      logUUID_ = 0L;
      logId_ = 0L;
      offset_ = 0L;
      checksum_ = 0L;
      length_ = 0;
      logStatus_ = py.proto.Broadcastlog.PBBroadcastLogStatus.Creating;
      snapshotVersion_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasLogUUID()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasLogId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasOffset()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasChecksum()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasLength()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasLogStatus()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasSnapshotVersion()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt64(1, logUUID_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt64(2, logId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt64(3, offset_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeInt64(4, checksum_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeInt32(5, length_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeEnum(6, logStatus_.getNumber());
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        output.writeInt32(7, snapshotVersion_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, logUUID_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(2, logId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(3, offset_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(4, checksum_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(5, length_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(6, logStatus_.getNumber());
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(7, snapshotVersion_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static py.proto.Broadcastlog.PBBroadcastLog parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static py.proto.Broadcastlog.PBBroadcastLog parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBBroadcastLog parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static py.proto.Broadcastlog.PBBroadcastLog parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBBroadcastLog parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static py.proto.Broadcastlog.PBBroadcastLog parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBBroadcastLog parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static py.proto.Broadcastlog.PBBroadcastLog parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBBroadcastLog parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static py.proto.Broadcastlog.PBBroadcastLog parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(py.proto.Broadcastlog.PBBroadcastLog prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code PBBroadcastLog}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:PBBroadcastLog)
        py.proto.Broadcastlog.PBBroadcastLogOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return py.proto.Broadcastlog.internal_static_PBBroadcastLog_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return py.proto.Broadcastlog.internal_static_PBBroadcastLog_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                py.proto.Broadcastlog.PBBroadcastLog.class, py.proto.Broadcastlog.PBBroadcastLog.Builder.class);
      }

      private PBBroadcastLog pbBroadcastLog;

      // Construct using py.proto.Broadcastlog.PBBroadcastLog.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
        pbBroadcastLog = new PBBroadcastLog(this);
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
        pbBroadcastLog = new PBBroadcastLog(this);
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        pbBroadcastLog.logUUID_ = 0L;
        pbBroadcastLog.bitField0_ = (pbBroadcastLog.bitField0_ & ~0x00000001);
        pbBroadcastLog.logId_ = 0L;
        pbBroadcastLog.bitField0_ = (pbBroadcastLog.bitField0_ & ~0x00000002);
        pbBroadcastLog.offset_ = 0L;
        pbBroadcastLog.bitField0_ = (pbBroadcastLog.bitField0_ & ~0x00000004);
        pbBroadcastLog.checksum_ = 0L;
        pbBroadcastLog.bitField0_ = (pbBroadcastLog.bitField0_ & ~0x00000008);
        pbBroadcastLog.length_ = 0;
        pbBroadcastLog.bitField0_ = (pbBroadcastLog.bitField0_ & ~0x00000010);
        pbBroadcastLog.logStatus_ = py.proto.Broadcastlog.PBBroadcastLogStatus.Creating;
        pbBroadcastLog.bitField0_ = (pbBroadcastLog.bitField0_ & ~0x00000020);
        pbBroadcastLog.snapshotVersion_ = 0;
        pbBroadcastLog.bitField0_ = (pbBroadcastLog.bitField0_ & ~0x00000040);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return py.proto.Broadcastlog.internal_static_PBBroadcastLog_descriptor;
      }

      public py.proto.Broadcastlog.PBBroadcastLog getDefaultInstanceForType() {
        return py.proto.Broadcastlog.PBBroadcastLog.getDefaultInstance();
      }

      public py.proto.Broadcastlog.PBBroadcastLog build() {
        py.proto.Broadcastlog.PBBroadcastLog result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public py.proto.Broadcastlog.PBBroadcastLog buildPartial() {
        onBuilt();
        return pbBroadcastLog;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof py.proto.Broadcastlog.PBBroadcastLog) {
          return mergeFrom((py.proto.Broadcastlog.PBBroadcastLog)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(py.proto.Broadcastlog.PBBroadcastLog other) {
        if (other == py.proto.Broadcastlog.PBBroadcastLog.getDefaultInstance()) return this;
        if (other.hasLogUUID()) {
          setLogUUID(other.getLogUUID());
        }
        if (other.hasLogId()) {
          setLogId(other.getLogId());
        }
        if (other.hasOffset()) {
          setOffset(other.getOffset());
        }
        if (other.hasChecksum()) {
          setChecksum(other.getChecksum());
        }
        if (other.hasLength()) {
          setLength(other.getLength());
        }
        if (other.hasLogStatus()) {
          setLogStatus(other.getLogStatus());
        }
        if (other.hasSnapshotVersion()) {
          setSnapshotVersion(other.getSnapshotVersion());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasLogUUID()) {
          
          return false;
        }
        if (!hasLogId()) {
          
          return false;
        }
        if (!hasOffset()) {
          
          return false;
        }
        if (!hasChecksum()) {
          
          return false;
        }
        if (!hasLength()) {
          
          return false;
        }
        if (!hasLogStatus()) {
          
          return false;
        }
        if (!hasSnapshotVersion()) {
          
          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        py.proto.Broadcastlog.PBBroadcastLog parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (py.proto.Broadcastlog.PBBroadcastLog) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      /**
       * <code>required int64 logUUID = 1;</code>
       */
      public boolean hasLogUUID() {
        return ((pbBroadcastLog.bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required int64 logUUID = 1;</code>
       */
      public long getLogUUID() {
        return pbBroadcastLog.logUUID_;
      }
      /**
       * <code>required int64 logUUID = 1;</code>
       */
      public Builder setLogUUID(long value) {
    	  pbBroadcastLog.bitField0_ |= 0x00000001;
    	  pbBroadcastLog.logUUID_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int64 logUUID = 1;</code>
       */
      public Builder clearLogUUID() {
        pbBroadcastLog.bitField0_ = (pbBroadcastLog.bitField0_ & ~0x00000001);
        pbBroadcastLog.logUUID_ = 0L;
        onChanged();
        return this;
      }

      /**
       * <code>required int64 logId = 2;</code>
       */
      public boolean hasLogId() {
        return ((pbBroadcastLog.bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required int64 logId = 2;</code>
       */
      public long getLogId() {
        return pbBroadcastLog.logId_;
      }
      /**
       * <code>required int64 logId = 2;</code>
       */
      public Builder setLogId(long value) {
    	pbBroadcastLog.bitField0_ |= 0x00000002;
    	pbBroadcastLog.logId_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int64 logId = 2;</code>
       */
      public Builder clearLogId() {
    	  pbBroadcastLog.bitField0_ = (pbBroadcastLog.bitField0_ & ~0x00000002);
    	  pbBroadcastLog.logId_ = 0L;
        onChanged();
        return this;
      }

      /**
       * <code>required int64 offset = 3;</code>
       */
      public boolean hasOffset() {
        return ((pbBroadcastLog.bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>required int64 offset = 3;</code>
       */
      public long getOffset() {
        return pbBroadcastLog.offset_;
      }
      /**
       * <code>required int64 offset = 3;</code>
       */
      public Builder setOffset(long value) {
    	  pbBroadcastLog.bitField0_ |= 0x00000004;
    	  pbBroadcastLog.offset_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int64 offset = 3;</code>
       */
      public Builder clearOffset() {
    	  pbBroadcastLog.bitField0_ = (pbBroadcastLog.bitField0_ & ~0x00000004);
    	  pbBroadcastLog.offset_ = 0L;
        onChanged();
        return this;
      }

      /**
       * <code>required int64 checksum = 4;</code>
       */
      public boolean hasChecksum() {
        return ((pbBroadcastLog.bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * <code>required int64 checksum = 4;</code>
       */
      public long getChecksum() {
        return pbBroadcastLog.checksum_;
      }
      /**
       * <code>required int64 checksum = 4;</code>
       */
      public Builder setChecksum(long value) {
    	  pbBroadcastLog.bitField0_ |= 0x00000008;
    	  pbBroadcastLog.checksum_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int64 checksum = 4;</code>
       */
      public Builder clearChecksum() {
    	  pbBroadcastLog.bitField0_ = (pbBroadcastLog.bitField0_ & ~0x00000008);
    	  pbBroadcastLog.checksum_ = 0L;
        onChanged();
        return this;
      }

      /**
       * <code>required int32 length = 5;</code>
       */
      public boolean hasLength() {
        return ((pbBroadcastLog.bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * <code>required int32 length = 5;</code>
       */
      public int getLength() {
        return pbBroadcastLog.length_;
      }
      /**
       * <code>required int32 length = 5;</code>
       */
      public Builder setLength(int value) {
    	  pbBroadcastLog.bitField0_ |= 0x00000010;
    	  pbBroadcastLog.length_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int32 length = 5;</code>
       */
      public Builder clearLength() {
    	  pbBroadcastLog.bitField0_ = (pbBroadcastLog.bitField0_ & ~0x00000010);
    	  pbBroadcastLog.length_ = 0;
        onChanged();
        return this;
      }

      /**
       * <code>required .PBBroadcastLogStatus logStatus = 6;</code>
       */
      public boolean hasLogStatus() {
        return ((pbBroadcastLog.bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * <code>required .PBBroadcastLogStatus logStatus = 6;</code>
       */
      public py.proto.Broadcastlog.PBBroadcastLogStatus getLogStatus() {
        return pbBroadcastLog.logStatus_;
      }
      /**
       * <code>required .PBBroadcastLogStatus logStatus = 6;</code>
       */
      public Builder setLogStatus(py.proto.Broadcastlog.PBBroadcastLogStatus value) {
        if (value == null) {
          throw new NullPointerException();
        }
        pbBroadcastLog.bitField0_ |= 0x00000020;
        pbBroadcastLog.logStatus_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required .PBBroadcastLogStatus logStatus = 6;</code>
       */
      public Builder clearLogStatus() {
    	  pbBroadcastLog.bitField0_ = (pbBroadcastLog.bitField0_ & ~0x00000020);
    	  pbBroadcastLog.logStatus_ = py.proto.Broadcastlog.PBBroadcastLogStatus.Creating;
        onChanged();
        return this;
      }

      /**
       * <code>required int32 snapshotVersion = 7;</code>
       */
      public boolean hasSnapshotVersion() {
        return ((pbBroadcastLog.bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       * <code>required int32 snapshotVersion = 7;</code>
       */
      public int getSnapshotVersion() {
        return pbBroadcastLog.snapshotVersion_;
      }
      /**
       * <code>required int32 snapshotVersion = 7;</code>
       */
      public Builder setSnapshotVersion(int value) {
    	  pbBroadcastLog.bitField0_ |= 0x00000040;
    	  pbBroadcastLog.snapshotVersion_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int32 snapshotVersion = 7;</code>
       */
      public Builder clearSnapshotVersion() {
    	  pbBroadcastLog.bitField0_ = (pbBroadcastLog.bitField0_ & ~0x00000040);
    	  pbBroadcastLog.snapshotVersion_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:PBBroadcastLog)
    }

    static {
      defaultInstance = new PBBroadcastLog(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:PBBroadcastLog)
  }

  public interface PBBroadcastLogManagerOrBuilder extends
      // @@protoc_insertion_point(interface_extends:PBBroadcastLogManager)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>required int64 requestId = 1;</code>
     */
    boolean hasRequestId();
    /**
     * <code>required int64 requestId = 1;</code>
     */
    long getRequestId();

    /**
     * <code>repeated .PBBroadcastLog broadcastLogs = 2;</code>
     */
    java.util.List<py.proto.Broadcastlog.PBBroadcastLog> 
        getBroadcastLogsList();
    /**
     * <code>repeated .PBBroadcastLog broadcastLogs = 2;</code>
     */
    py.proto.Broadcastlog.PBBroadcastLog getBroadcastLogs(int index);
    /**
     * <code>repeated .PBBroadcastLog broadcastLogs = 2;</code>
     */
    int getBroadcastLogsCount();
    /**
     * <code>repeated .PBBroadcastLog broadcastLogs = 2;</code>
     */
    java.util.List<? extends py.proto.Broadcastlog.PBBroadcastLogOrBuilder> 
        getBroadcastLogsOrBuilderList();
    /**
     * <code>repeated .PBBroadcastLog broadcastLogs = 2;</code>
     */
    py.proto.Broadcastlog.PBBroadcastLogOrBuilder getBroadcastLogsOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code PBBroadcastLogManager}
   */
  public static final class PBBroadcastLogManager extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:PBBroadcastLogManager)
      PBBroadcastLogManagerOrBuilder {
    // Use PBBroadcastLogManager.newBuilder() to construct.
    private PBBroadcastLogManager(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      initFields();
      this.unknownFields = builder.getUnknownFields();
    }
    private PBBroadcastLogManager(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final PBBroadcastLogManager defaultInstance;
    public static PBBroadcastLogManager getDefaultInstance() {
      return defaultInstance;
    }

    public PBBroadcastLogManager getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private PBBroadcastLogManager(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              requestId_ = input.readInt64();
              break;
            }
            case 18: {
              if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                broadcastLogs_ = new java.util.LinkedList<py.proto.Broadcastlog.PBBroadcastLog>();
                mutable_bitField0_ |= 0x00000002;
              }
              broadcastLogs_.add(input.readMessage(py.proto.Broadcastlog.PBBroadcastLog.PARSER, extensionRegistry));
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          broadcastLogs_ = java.util.Collections.unmodifiableList(broadcastLogs_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return py.proto.Broadcastlog.internal_static_PBBroadcastLogManager_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return py.proto.Broadcastlog.internal_static_PBBroadcastLogManager_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              py.proto.Broadcastlog.PBBroadcastLogManager.class, py.proto.Broadcastlog.PBBroadcastLogManager.Builder.class);
    }

    public static com.google.protobuf.Parser<PBBroadcastLogManager> PARSER =
        new com.google.protobuf.AbstractParser<PBBroadcastLogManager>() {
      public PBBroadcastLogManager parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new PBBroadcastLogManager(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser<PBBroadcastLogManager> getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int REQUESTID_FIELD_NUMBER = 1;
    private long requestId_;
    /**
     * <code>required int64 requestId = 1;</code>
     */
    public boolean hasRequestId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required int64 requestId = 1;</code>
     */
    public long getRequestId() {
      return requestId_;
    }

    public static final int BROADCASTLOGS_FIELD_NUMBER = 2;
    private java.util.List<py.proto.Broadcastlog.PBBroadcastLog> broadcastLogs_;
    /**
     * <code>repeated .PBBroadcastLog broadcastLogs = 2;</code>
     */
    public java.util.List<py.proto.Broadcastlog.PBBroadcastLog> getBroadcastLogsList() {
      return broadcastLogs_;
    }
    /**
     * <code>repeated .PBBroadcastLog broadcastLogs = 2;</code>
     */
    public java.util.List<? extends py.proto.Broadcastlog.PBBroadcastLogOrBuilder> 
        getBroadcastLogsOrBuilderList() {
      return broadcastLogs_;
    }
    /**
     * <code>repeated .PBBroadcastLog broadcastLogs = 2;</code>
     */
    public int getBroadcastLogsCount() {
      return broadcastLogs_.size();
    }
    /**
     * <code>repeated .PBBroadcastLog broadcastLogs = 2;</code>
     */
    public py.proto.Broadcastlog.PBBroadcastLog getBroadcastLogs(int index) {
      return broadcastLogs_.get(index);
    }
    /**
     * <code>repeated .PBBroadcastLog broadcastLogs = 2;</code>
     */
    public py.proto.Broadcastlog.PBBroadcastLogOrBuilder getBroadcastLogsOrBuilder(
        int index) {
      return broadcastLogs_.get(index);
    }

    private void initFields() {
      requestId_ = 0L;
      broadcastLogs_ = java.util.Collections.emptyList();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasRequestId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      for (int i = 0; i < getBroadcastLogsCount(); i++) {
        if (!getBroadcastLogs(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt64(1, requestId_);
      }
      for (int i = 0; i < broadcastLogs_.size(); i++) {
        output.writeMessage(2, broadcastLogs_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, requestId_);
      }
      for (int i = 0; i < broadcastLogs_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, broadcastLogs_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static py.proto.Broadcastlog.PBBroadcastLogManager parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static py.proto.Broadcastlog.PBBroadcastLogManager parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBBroadcastLogManager parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static py.proto.Broadcastlog.PBBroadcastLogManager parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBBroadcastLogManager parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static py.proto.Broadcastlog.PBBroadcastLogManager parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBBroadcastLogManager parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static py.proto.Broadcastlog.PBBroadcastLogManager parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBBroadcastLogManager parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static py.proto.Broadcastlog.PBBroadcastLogManager parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(py.proto.Broadcastlog.PBBroadcastLogManager prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code PBBroadcastLogManager}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:PBBroadcastLogManager)
        py.proto.Broadcastlog.PBBroadcastLogManagerOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return py.proto.Broadcastlog.internal_static_PBBroadcastLogManager_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return py.proto.Broadcastlog.internal_static_PBBroadcastLogManager_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                py.proto.Broadcastlog.PBBroadcastLogManager.class, py.proto.Broadcastlog.PBBroadcastLogManager.Builder.class);
      }

      private PBBroadcastLogManager pbBroadcastLogManager;

      // Construct using py.proto.Broadcastlog.PBBroadcastLogManager.newBuilder()
      private Builder() {
    	  pbBroadcastLogManager = new PBBroadcastLogManager(this);
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        pbBroadcastLogManager = new PBBroadcastLogManager(this);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getBroadcastLogsFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        pbBroadcastLogManager.requestId_ = 0L;
        pbBroadcastLogManager.bitField0_ = (pbBroadcastLogManager.bitField0_ & ~0x00000001);
        if (broadcastLogsBuilder_ == null) {
        	pbBroadcastLogManager.broadcastLogs_ = java.util.Collections.emptyList();
        	pbBroadcastLogManager.bitField0_ = (pbBroadcastLogManager.bitField0_ & ~0x00000002);
        } else {
          broadcastLogsBuilder_.clear();
        }
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return py.proto.Broadcastlog.internal_static_PBBroadcastLogManager_descriptor;
      }

      public py.proto.Broadcastlog.PBBroadcastLogManager getDefaultInstanceForType() {
        return py.proto.Broadcastlog.PBBroadcastLogManager.getDefaultInstance();
      }

      public py.proto.Broadcastlog.PBBroadcastLogManager build() {
        py.proto.Broadcastlog.PBBroadcastLogManager result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public py.proto.Broadcastlog.PBBroadcastLogManager buildPartial() {
        
        if (broadcastLogsBuilder_ != null) {
        	pbBroadcastLogManager.broadcastLogs_ = broadcastLogsBuilder_.build();
        	pbBroadcastLogManager.bitField0_ = (pbBroadcastLogManager.bitField0_ & ~0x00000002);
        }
        onBuilt();
        return pbBroadcastLogManager;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof py.proto.Broadcastlog.PBBroadcastLogManager) {
          return mergeFrom((py.proto.Broadcastlog.PBBroadcastLogManager)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(py.proto.Broadcastlog.PBBroadcastLogManager other) {
        if (other == py.proto.Broadcastlog.PBBroadcastLogManager.getDefaultInstance()) return this;
        if (other.hasRequestId()) {
          setRequestId(other.getRequestId());
        }
        if (broadcastLogsBuilder_ == null) {
          if (!other.broadcastLogs_.isEmpty()) {
            if (pbBroadcastLogManager.broadcastLogs_.isEmpty()) {
            	pbBroadcastLogManager.broadcastLogs_ = other.broadcastLogs_;
            	pbBroadcastLogManager.bitField0_ = (pbBroadcastLogManager.bitField0_ & ~0x00000002);
            } else {
              ensureBroadcastLogsIsMutable();
              pbBroadcastLogManager.broadcastLogs_.addAll(other.broadcastLogs_);
            }
            onChanged();
          }
        } else {
          if (!other.broadcastLogs_.isEmpty()) {
            if (broadcastLogsBuilder_.isEmpty()) {
              broadcastLogsBuilder_.dispose();
              broadcastLogsBuilder_ = null;
              pbBroadcastLogManager.broadcastLogs_ = other.broadcastLogs_;
              pbBroadcastLogManager.bitField0_ = (pbBroadcastLogManager.bitField0_ & ~0x00000002);
              broadcastLogsBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getBroadcastLogsFieldBuilder() : null;
            } else {
              broadcastLogsBuilder_.addAllMessages(other.broadcastLogs_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasRequestId()) {
          
          return false;
        }
        for (int i = 0; i < getBroadcastLogsCount(); i++) {
          if (!getBroadcastLogs(i).isInitialized()) {
            
            return false;
          }
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        py.proto.Broadcastlog.PBBroadcastLogManager parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (py.proto.Broadcastlog.PBBroadcastLogManager) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      /**
       * <code>required int64 requestId = 1;</code>
       */
      public boolean hasRequestId() {
        return ((pbBroadcastLogManager.bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required int64 requestId = 1;</code>
       */
      public long getRequestId() {
        return pbBroadcastLogManager.requestId_;
      }
      /**
       * <code>required int64 requestId = 1;</code>
       */
      public Builder setRequestId(long value) {
    	  pbBroadcastLogManager.bitField0_ |= 0x00000001;
    	  pbBroadcastLogManager.requestId_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int64 requestId = 1;</code>
       */
      public Builder clearRequestId() {
    	  pbBroadcastLogManager.bitField0_ = (pbBroadcastLogManager.bitField0_ & ~0x00000001);
    	  pbBroadcastLogManager.requestId_ = 0L;
        onChanged();
        return this;
      }

      private void ensureBroadcastLogsIsMutable() {
        if (!((pbBroadcastLogManager.bitField0_ & 0x00000002) == 0x00000002)) {
        	pbBroadcastLogManager.broadcastLogs_ = new java.util.LinkedList<py.proto.Broadcastlog.PBBroadcastLog>(pbBroadcastLogManager.broadcastLogs_);
        	pbBroadcastLogManager.bitField0_ |= 0x00000002;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          py.proto.Broadcastlog.PBBroadcastLog, py.proto.Broadcastlog.PBBroadcastLog.Builder, py.proto.Broadcastlog.PBBroadcastLogOrBuilder> broadcastLogsBuilder_;

      /**
       * <code>repeated .PBBroadcastLog broadcastLogs = 2;</code>
       */
      public java.util.List<py.proto.Broadcastlog.PBBroadcastLog> getBroadcastLogsList() {
        if (broadcastLogsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(pbBroadcastLogManager.broadcastLogs_);
        } else {
          return broadcastLogsBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .PBBroadcastLog broadcastLogs = 2;</code>
       */
      public int getBroadcastLogsCount() {
        if (broadcastLogsBuilder_ == null) {
          return pbBroadcastLogManager.broadcastLogs_.size();
        } else {
          return broadcastLogsBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .PBBroadcastLog broadcastLogs = 2;</code>
       */
      public py.proto.Broadcastlog.PBBroadcastLog getBroadcastLogs(int index) {
        if (broadcastLogsBuilder_ == null) {
          return pbBroadcastLogManager.broadcastLogs_.get(index);
        } else {
          return broadcastLogsBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .PBBroadcastLog broadcastLogs = 2;</code>
       */
      public Builder setBroadcastLogs(
          int index, py.proto.Broadcastlog.PBBroadcastLog value) {
        if (broadcastLogsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureBroadcastLogsIsMutable();
          pbBroadcastLogManager.broadcastLogs_.set(index, value);
          onChanged();
        } else {
          broadcastLogsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .PBBroadcastLog broadcastLogs = 2;</code>
       */
      public Builder setBroadcastLogs(
          int index, py.proto.Broadcastlog.PBBroadcastLog.Builder builderForValue) {
        if (broadcastLogsBuilder_ == null) {
          ensureBroadcastLogsIsMutable();
          pbBroadcastLogManager.broadcastLogs_.set(index, builderForValue.build());
          onChanged();
        } else {
          broadcastLogsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .PBBroadcastLog broadcastLogs = 2;</code>
       */
      public Builder addBroadcastLogs(py.proto.Broadcastlog.PBBroadcastLog value) {
        if (broadcastLogsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureBroadcastLogsIsMutable();
          pbBroadcastLogManager.broadcastLogs_.add(value);
          onChanged();
        } else {
          broadcastLogsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .PBBroadcastLog broadcastLogs = 2;</code>
       */
      public Builder addBroadcastLogs(
          int index, py.proto.Broadcastlog.PBBroadcastLog value) {
        if (broadcastLogsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureBroadcastLogsIsMutable();
          pbBroadcastLogManager.broadcastLogs_.add(index, value);
          onChanged();
        } else {
          broadcastLogsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .PBBroadcastLog broadcastLogs = 2;</code>
       */
      public Builder addBroadcastLogs(
          py.proto.Broadcastlog.PBBroadcastLog.Builder builderForValue) {
        if (broadcastLogsBuilder_ == null) {
          ensureBroadcastLogsIsMutable();
          pbBroadcastLogManager.broadcastLogs_.add(builderForValue.build());
          onChanged();
        } else {
          broadcastLogsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .PBBroadcastLog broadcastLogs = 2;</code>
       */
      public Builder addBroadcastLogs(
          int index, py.proto.Broadcastlog.PBBroadcastLog.Builder builderForValue) {
        if (broadcastLogsBuilder_ == null) {
          ensureBroadcastLogsIsMutable();
          pbBroadcastLogManager.broadcastLogs_.add(index, builderForValue.build());
          onChanged();
        } else {
          broadcastLogsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .PBBroadcastLog broadcastLogs = 2;</code>
       */
      public Builder addAllBroadcastLogs(
          java.lang.Iterable<? extends py.proto.Broadcastlog.PBBroadcastLog> values) {
        if (broadcastLogsBuilder_ == null) {
          ensureBroadcastLogsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, pbBroadcastLogManager.broadcastLogs_);
          onChanged();
        } else {
          broadcastLogsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .PBBroadcastLog broadcastLogs = 2;</code>
       */
      public Builder clearBroadcastLogs() {
        if (broadcastLogsBuilder_ == null) {
        	pbBroadcastLogManager.broadcastLogs_ = java.util.Collections.emptyList();
        	pbBroadcastLogManager.bitField0_ = (pbBroadcastLogManager.bitField0_ & ~0x00000002);
          onChanged();
        } else {
          broadcastLogsBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .PBBroadcastLog broadcastLogs = 2;</code>
       */
      public Builder removeBroadcastLogs(int index) {
        if (broadcastLogsBuilder_ == null) {
          ensureBroadcastLogsIsMutable();
          pbBroadcastLogManager.broadcastLogs_.remove(index);
          onChanged();
        } else {
          broadcastLogsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .PBBroadcastLog broadcastLogs = 2;</code>
       */
      public py.proto.Broadcastlog.PBBroadcastLog.Builder getBroadcastLogsBuilder(
          int index) {
        return getBroadcastLogsFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .PBBroadcastLog broadcastLogs = 2;</code>
       */
      public py.proto.Broadcastlog.PBBroadcastLogOrBuilder getBroadcastLogsOrBuilder(
          int index) {
        if (broadcastLogsBuilder_ == null) {
          return pbBroadcastLogManager.broadcastLogs_.get(index);  } else {
          return broadcastLogsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .PBBroadcastLog broadcastLogs = 2;</code>
       */
      public java.util.List<? extends py.proto.Broadcastlog.PBBroadcastLogOrBuilder> 
           getBroadcastLogsOrBuilderList() {
        if (broadcastLogsBuilder_ != null) {
          return broadcastLogsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(pbBroadcastLogManager.broadcastLogs_);
        }
      }
      /**
       * <code>repeated .PBBroadcastLog broadcastLogs = 2;</code>
       */
      public py.proto.Broadcastlog.PBBroadcastLog.Builder addBroadcastLogsBuilder() {
        return getBroadcastLogsFieldBuilder().addBuilder(
            py.proto.Broadcastlog.PBBroadcastLog.getDefaultInstance());
      }
      /**
       * <code>repeated .PBBroadcastLog broadcastLogs = 2;</code>
       */
      public py.proto.Broadcastlog.PBBroadcastLog.Builder addBroadcastLogsBuilder(
          int index) {
        return getBroadcastLogsFieldBuilder().addBuilder(
            index, py.proto.Broadcastlog.PBBroadcastLog.getDefaultInstance());
      }
      /**
       * <code>repeated .PBBroadcastLog broadcastLogs = 2;</code>
       */
      public java.util.List<py.proto.Broadcastlog.PBBroadcastLog.Builder> 
           getBroadcastLogsBuilderList() {
        return getBroadcastLogsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          py.proto.Broadcastlog.PBBroadcastLog, py.proto.Broadcastlog.PBBroadcastLog.Builder, py.proto.Broadcastlog.PBBroadcastLogOrBuilder> 
          getBroadcastLogsFieldBuilder() {
        if (broadcastLogsBuilder_ == null) {
          broadcastLogsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              py.proto.Broadcastlog.PBBroadcastLog, py.proto.Broadcastlog.PBBroadcastLog.Builder, py.proto.Broadcastlog.PBBroadcastLogOrBuilder>(
            		  pbBroadcastLogManager.broadcastLogs_,
                  ((pbBroadcastLogManager.bitField0_ & 0x00000002) == 0x00000002),
                  getParentForChildren(),
                  isClean());
          pbBroadcastLogManager.broadcastLogs_ = null;
        }
        return broadcastLogsBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:PBBroadcastLogManager)
    }

    static {
      defaultInstance = new PBBroadcastLogManager(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:PBBroadcastLogManager)
  }

  public interface PBWriteRequestUnitOrBuilder extends
      // @@protoc_insertion_point(interface_extends:PBWriteRequestUnit)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>required int64 logUUID = 1;</code>
     */
    boolean hasLogUUID();
    /**
     * <code>required int64 logUUID = 1;</code>
     */
    long getLogUUID();

    /**
     * <code>required int64 logId = 2;</code>
     */
    boolean hasLogId();
    /**
     * <code>required int64 logId = 2;</code>
     */
    long getLogId();

    /**
     * <code>required int64 offset = 3;</code>
     *
     * <pre>
     * the logic offset at the volume
     * </pre>
     */
    boolean hasOffset();
    /**
     * <code>required int64 offset = 3;</code>
     *
     * <pre>
     * the logic offset at the volume
     * </pre>
     */
    long getOffset();

    /**
     * <code>required int32 length = 4;</code>
     */
    boolean hasLength();
    /**
     * <code>required int32 length = 4;</code>
     */
    int getLength();

    /**
     * <code>required int32 snapshotVersion = 5;</code>
     */
    boolean hasSnapshotVersion();
    /**
     * <code>required int32 snapshotVersion = 5;</code>
     */
    int getSnapshotVersion();

    /**
     * <code>optional int64 checksum = 6;</code>
     */
    boolean hasChecksum();
    /**
     * <code>optional int64 checksum = 6;</code>
     */
    long getChecksum();
  }
  /**
   * Protobuf type {@code PBWriteRequestUnit}
   */
  public static final class PBWriteRequestUnit extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:PBWriteRequestUnit)
      PBWriteRequestUnitOrBuilder {
    // Use PBWriteRequestUnit.newBuilder() to construct.
    private PBWriteRequestUnit(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      initFields();
      this.unknownFields = builder.getUnknownFields();
    }
    private PBWriteRequestUnit(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final PBWriteRequestUnit defaultInstance;
    public static PBWriteRequestUnit getDefaultInstance() {
      return defaultInstance;
    }

    public PBWriteRequestUnit getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private PBWriteRequestUnit(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              logUUID_ = input.readInt64();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              logId_ = input.readInt64();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              offset_ = input.readInt64();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              length_ = input.readInt32();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              snapshotVersion_ = input.readInt32();
              break;
            }
            case 48: {
              bitField0_ |= 0x00000020;
              checksum_ = input.readInt64();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return py.proto.Broadcastlog.internal_static_PBWriteRequestUnit_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return py.proto.Broadcastlog.internal_static_PBWriteRequestUnit_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              py.proto.Broadcastlog.PBWriteRequestUnit.class, py.proto.Broadcastlog.PBWriteRequestUnit.Builder.class);
    }

    public static com.google.protobuf.Parser<PBWriteRequestUnit> PARSER =
        new com.google.protobuf.AbstractParser<PBWriteRequestUnit>() {
      public PBWriteRequestUnit parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new PBWriteRequestUnit(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser<PBWriteRequestUnit> getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int LOGUUID_FIELD_NUMBER = 1;
    private long logUUID_;
    /**
     * <code>required int64 logUUID = 1;</code>
     */
    public boolean hasLogUUID() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required int64 logUUID = 1;</code>
     */
    public long getLogUUID() {
      return logUUID_;
    }

    public static final int LOGID_FIELD_NUMBER = 2;
    private long logId_;
    /**
     * <code>required int64 logId = 2;</code>
     */
    public boolean hasLogId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required int64 logId = 2;</code>
     */
    public long getLogId() {
      return logId_;
    }

    public static final int OFFSET_FIELD_NUMBER = 3;
    private long offset_;
    /**
     * <code>required int64 offset = 3;</code>
     *
     * <pre>
     * the logic offset at the volume
     * </pre>
     */
    public boolean hasOffset() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>required int64 offset = 3;</code>
     *
     * <pre>
     * the logic offset at the volume
     * </pre>
     */
    public long getOffset() {
      return offset_;
    }

    public static final int LENGTH_FIELD_NUMBER = 4;
    private int length_;
    /**
     * <code>required int32 length = 4;</code>
     */
    public boolean hasLength() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * <code>required int32 length = 4;</code>
     */
    public int getLength() {
      return length_;
    }

    public static final int SNAPSHOTVERSION_FIELD_NUMBER = 5;
    private int snapshotVersion_;
    /**
     * <code>required int32 snapshotVersion = 5;</code>
     */
    public boolean hasSnapshotVersion() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * <code>required int32 snapshotVersion = 5;</code>
     */
    public int getSnapshotVersion() {
      return snapshotVersion_;
    }

    public static final int CHECKSUM_FIELD_NUMBER = 6;
    private long checksum_;
    /**
     * <code>optional int64 checksum = 6;</code>
     */
    public boolean hasChecksum() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     * <code>optional int64 checksum = 6;</code>
     */
    public long getChecksum() {
      return checksum_;
    }

    private void initFields() {
      logUUID_ = 0L;
      logId_ = 0L;
      offset_ = 0L;
      length_ = 0;
      snapshotVersion_ = 0;
      checksum_ = 0L;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasLogUUID()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasLogId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasOffset()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasLength()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasSnapshotVersion()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt64(1, logUUID_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt64(2, logId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt64(3, offset_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeInt32(4, length_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeInt32(5, snapshotVersion_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeInt64(6, checksum_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, logUUID_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(2, logId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(3, offset_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, length_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(5, snapshotVersion_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(6, checksum_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static py.proto.Broadcastlog.PBWriteRequestUnit parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static py.proto.Broadcastlog.PBWriteRequestUnit parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBWriteRequestUnit parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static py.proto.Broadcastlog.PBWriteRequestUnit parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBWriteRequestUnit parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static py.proto.Broadcastlog.PBWriteRequestUnit parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBWriteRequestUnit parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static py.proto.Broadcastlog.PBWriteRequestUnit parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBWriteRequestUnit parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static py.proto.Broadcastlog.PBWriteRequestUnit parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(py.proto.Broadcastlog.PBWriteRequestUnit prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code PBWriteRequestUnit}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:PBWriteRequestUnit)
        py.proto.Broadcastlog.PBWriteRequestUnitOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return py.proto.Broadcastlog.internal_static_PBWriteRequestUnit_descriptor;
      }

      private PBWriteRequestUnit pbWriteRequestUnit;
      
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return py.proto.Broadcastlog.internal_static_PBWriteRequestUnit_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                py.proto.Broadcastlog.PBWriteRequestUnit.class, py.proto.Broadcastlog.PBWriteRequestUnit.Builder.class);
      }

      // Construct using py.proto.Broadcastlog.PBWriteRequestUnit.newBuilder()
      private Builder() {
    	  pbWriteRequestUnit = new PBWriteRequestUnit(this);
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        pbWriteRequestUnit = new PBWriteRequestUnit(this);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        pbWriteRequestUnit.logUUID_ = 0L;
        pbWriteRequestUnit.bitField0_ = (pbWriteRequestUnit.bitField0_ & ~0x00000001);
        pbWriteRequestUnit.logId_ = 0L;
        pbWriteRequestUnit.bitField0_ = (pbWriteRequestUnit.bitField0_ & ~0x00000002);
        pbWriteRequestUnit.offset_ = 0L;
        pbWriteRequestUnit.bitField0_ = (pbWriteRequestUnit.bitField0_ & ~0x00000004);
        pbWriteRequestUnit.length_ = 0;
        pbWriteRequestUnit.bitField0_ = (pbWriteRequestUnit.bitField0_ & ~0x00000008);
        pbWriteRequestUnit.snapshotVersion_ = 0;
        pbWriteRequestUnit.bitField0_ = (pbWriteRequestUnit.bitField0_ & ~0x00000010);
        pbWriteRequestUnit.checksum_ = 0L;
        pbWriteRequestUnit.bitField0_ = (pbWriteRequestUnit.bitField0_ & ~0x00000020);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return py.proto.Broadcastlog.internal_static_PBWriteRequestUnit_descriptor;
      }

      public py.proto.Broadcastlog.PBWriteRequestUnit getDefaultInstanceForType() {
        return py.proto.Broadcastlog.PBWriteRequestUnit.getDefaultInstance();
      }

      public py.proto.Broadcastlog.PBWriteRequestUnit build() {
        py.proto.Broadcastlog.PBWriteRequestUnit result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public py.proto.Broadcastlog.PBWriteRequestUnit buildPartial() {
        onBuilt();
        return pbWriteRequestUnit;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof py.proto.Broadcastlog.PBWriteRequestUnit) {
          return mergeFrom((py.proto.Broadcastlog.PBWriteRequestUnit)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(py.proto.Broadcastlog.PBWriteRequestUnit other) {
        if (other == py.proto.Broadcastlog.PBWriteRequestUnit.getDefaultInstance()) return this;
        if (other.hasLogUUID()) {
          setLogUUID(other.getLogUUID());
        }
        if (other.hasLogId()) {
          setLogId(other.getLogId());
        }
        if (other.hasOffset()) {
          setOffset(other.getOffset());
        }
        if (other.hasLength()) {
          setLength(other.getLength());
        }
        if (other.hasSnapshotVersion()) {
          setSnapshotVersion(other.getSnapshotVersion());
        }
        if (other.hasChecksum()) {
          setChecksum(other.getChecksum());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasLogUUID()) {
          
          return false;
        }
        if (!hasLogId()) {
          
          return false;
        }
        if (!hasOffset()) {
          
          return false;
        }
        if (!hasLength()) {
          
          return false;
        }
        if (!hasSnapshotVersion()) {
          
          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        py.proto.Broadcastlog.PBWriteRequestUnit parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (py.proto.Broadcastlog.PBWriteRequestUnit) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      /**
       * <code>required int64 logUUID = 1;</code>
       */
      public boolean hasLogUUID() {
        return ((pbWriteRequestUnit.bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required int64 logUUID = 1;</code>
       */
      public long getLogUUID() {
        return pbWriteRequestUnit.logUUID_;
      }
      /**
       * <code>required int64 logUUID = 1;</code>
       */
      public Builder setLogUUID(long value) {
    	  pbWriteRequestUnit.bitField0_ |= 0x00000001;
    	  pbWriteRequestUnit.logUUID_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int64 logUUID = 1;</code>
       */
      public Builder clearLogUUID() {
    	  pbWriteRequestUnit.bitField0_ = (pbWriteRequestUnit.bitField0_ & ~0x00000001);
    	  pbWriteRequestUnit.logUUID_ = 0L;
        onChanged();
        return this;
      }

      /**
       * <code>required int64 logId = 2;</code>
       */
      public boolean hasLogId() {
        return ((pbWriteRequestUnit.bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required int64 logId = 2;</code>
       */
      public long getLogId() {
        return pbWriteRequestUnit.logId_;
      }
      /**
       * <code>required int64 logId = 2;</code>
       */
      public Builder setLogId(long value) {
    	  pbWriteRequestUnit.bitField0_ |= 0x00000002;
    	  pbWriteRequestUnit.logId_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int64 logId = 2;</code>
       */
      public Builder clearLogId() {
    	  pbWriteRequestUnit.bitField0_ = (pbWriteRequestUnit.bitField0_ & ~0x00000002);
    	  pbWriteRequestUnit.logId_ = 0L;
        onChanged();
        return this;
      }

      /**
       * <code>required int64 offset = 3;</code>
       *
       * <pre>
       * the logic offset at the volume
       * </pre>
       */
      public boolean hasOffset() {
        return ((pbWriteRequestUnit.bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>required int64 offset = 3;</code>
       *
       * <pre>
       * the logic offset at the volume
       * </pre>
       */
      public long getOffset() {
        return pbWriteRequestUnit.offset_;
      }
      /**
       * <code>required int64 offset = 3;</code>
       *
       * <pre>
       * the logic offset at the volume
       * </pre>
       */
      public Builder setOffset(long value) {
    	  pbWriteRequestUnit.bitField0_ |= 0x00000004;
    	  pbWriteRequestUnit.offset_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int64 offset = 3;</code>
       *
       * <pre>
       * the logic offset at the volume
       * </pre>
       */
      public Builder clearOffset() {
    	  pbWriteRequestUnit.bitField0_ = (pbWriteRequestUnit.bitField0_ & ~0x00000004);
    	  pbWriteRequestUnit.offset_ = 0L;
        onChanged();
        return this;
      }

      /**
       * <code>required int32 length = 4;</code>
       */
      public boolean hasLength() {
        return ((pbWriteRequestUnit.bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * <code>required int32 length = 4;</code>
       */
      public int getLength() {
        return pbWriteRequestUnit.length_;
      }
      /**
       * <code>required int32 length = 4;</code>
       */
      public Builder setLength(int value) {
    	  pbWriteRequestUnit.bitField0_ |= 0x00000008;
    	  pbWriteRequestUnit.length_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int32 length = 4;</code>
       */
      public Builder clearLength() {
    	  pbWriteRequestUnit.bitField0_ = (pbWriteRequestUnit.bitField0_ & ~0x00000008);
    	  pbWriteRequestUnit.length_ = 0;
        onChanged();
        return this;
      }

      /**
       * <code>required int32 snapshotVersion = 5;</code>
       */
      public boolean hasSnapshotVersion() {
        return ((pbWriteRequestUnit.bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * <code>required int32 snapshotVersion = 5;</code>
       */
      public int getSnapshotVersion() {
        return pbWriteRequestUnit.snapshotVersion_;
      }
      /**
       * <code>required int32 snapshotVersion = 5;</code>
       */
      public Builder setSnapshotVersion(int value) {
    	  pbWriteRequestUnit.bitField0_ |= 0x00000010;
    	  pbWriteRequestUnit.snapshotVersion_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int32 snapshotVersion = 5;</code>
       */
      public Builder clearSnapshotVersion() {
    	  pbWriteRequestUnit.bitField0_ = (pbWriteRequestUnit.bitField0_ & ~0x00000010);
    	  pbWriteRequestUnit.snapshotVersion_ = 0;
        onChanged();
        return this;
      }

      /**
       * <code>optional int64 checksum = 6;</code>
       */
      public boolean hasChecksum() {
        return ((pbWriteRequestUnit.bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * <code>optional int64 checksum = 6;</code>
       */
      public long getChecksum() {
        return pbWriteRequestUnit.checksum_;
      }
      /**
       * <code>optional int64 checksum = 6;</code>
       */
      public Builder setChecksum(long value) {
    	  pbWriteRequestUnit.bitField0_ |= 0x00000020;
    	  pbWriteRequestUnit.checksum_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int64 checksum = 6;</code>
       */
      public Builder clearChecksum() {
    	  pbWriteRequestUnit.bitField0_ = (pbWriteRequestUnit.bitField0_ & ~0x00000020);
    	  pbWriteRequestUnit.checksum_ = 0L;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:PBWriteRequestUnit)
    }

    static {
      defaultInstance = new PBWriteRequestUnit(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:PBWriteRequestUnit)
  }

  public interface PBMembershipOrBuilder extends
      // @@protoc_insertion_point(interface_extends:PBMembership)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>required int64 primary = 1;</code>
     */
    boolean hasPrimary();
    /**
     * <code>required int64 primary = 1;</code>
     */
    long getPrimary();

    /**
     * <code>required int32 epoch = 2;</code>
     */
    boolean hasEpoch();
    /**
     * <code>required int32 epoch = 2;</code>
     */
    int getEpoch();

    /**
     * <code>required int32 generation = 3;</code>
     */
    boolean hasGeneration();
    /**
     * <code>required int32 generation = 3;</code>
     */
    int getGeneration();

    /**
     * <code>repeated int64 secondaries = 4;</code>
     */
    java.util.List<java.lang.Long> getSecondariesList();
    /**
     * <code>repeated int64 secondaries = 4;</code>
     */
    int getSecondariesCount();
    /**
     * <code>repeated int64 secondaries = 4;</code>
     */
    long getSecondaries(int index);

    /**
     * <code>repeated int64 joiningSecondaries = 5;</code>
     */
    java.util.List<java.lang.Long> getJoiningSecondariesList();
    /**
     * <code>repeated int64 joiningSecondaries = 5;</code>
     */
    int getJoiningSecondariesCount();
    /**
     * <code>repeated int64 joiningSecondaries = 5;</code>
     */
    long getJoiningSecondaries(int index);

    /**
     * <code>repeated int64 arbiters = 6;</code>
     */
    java.util.List<java.lang.Long> getArbitersList();
    /**
     * <code>repeated int64 arbiters = 6;</code>
     */
    int getArbitersCount();
    /**
     * <code>repeated int64 arbiters = 6;</code>
     */
    long getArbiters(int index);

    /**
     * <code>repeated int64 inactiveSecondaries = 7;</code>
     */
    java.util.List<java.lang.Long> getInactiveSecondariesList();
    /**
     * <code>repeated int64 inactiveSecondaries = 7;</code>
     */
    int getInactiveSecondariesCount();
    /**
     * <code>repeated int64 inactiveSecondaries = 7;</code>
     */
    long getInactiveSecondaries(int index);

    /**
     * <code>optional int64 tempPrimary = 8;</code>
     */
    boolean hasTempPrimary();
    /**
     * <code>optional int64 tempPrimary = 8;</code>
     */
    long getTempPrimary();

    /**
     * <code>optional int64 secondaryCandidate = 9;</code>
     */
    boolean hasSecondaryCandidate();
    /**
     * <code>optional int64 secondaryCandidate = 9;</code>
     */
    long getSecondaryCandidate();

    /**
     * <code>optional int64 primaryCandidate = 10;</code>
     */
    boolean hasPrimaryCandidate();
    /**
     * <code>optional int64 primaryCandidate = 10;</code>
     */
    long getPrimaryCandidate();
  }
  /**
   * Protobuf type {@code PBMembership}
   */
  public static final class PBMembership extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:PBMembership)
      PBMembershipOrBuilder {
    // Use PBMembership.newBuilder() to construct.
    private PBMembership(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private PBMembership(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final PBMembership defaultInstance;
    public static PBMembership getDefaultInstance() {
      return defaultInstance;
    }

    public PBMembership getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private PBMembership(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              primary_ = input.readInt64();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              epoch_ = input.readInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              generation_ = input.readInt32();
              break;
            }
            case 32: {
              if (!((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
                secondaries_ = new java.util.LinkedList<java.lang.Long>();
                mutable_bitField0_ |= 0x00000008;
              }
              secondaries_.add(input.readInt64());
              break;
            }
            case 34: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              if (!((mutable_bitField0_ & 0x00000008) == 0x00000008) && input.getBytesUntilLimit() > 0) {
                secondaries_ = new java.util.LinkedList<java.lang.Long>();
                mutable_bitField0_ |= 0x00000008;
              }
              while (input.getBytesUntilLimit() > 0) {
                secondaries_.add(input.readInt64());
              }
              input.popLimit(limit);
              break;
            }
            case 40: {
              if (!((mutable_bitField0_ & 0x00000010) == 0x00000010)) {
                joiningSecondaries_ = new java.util.LinkedList<java.lang.Long>();
                mutable_bitField0_ |= 0x00000010;
              }
              joiningSecondaries_.add(input.readInt64());
              break;
            }
            case 42: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              if (!((mutable_bitField0_ & 0x00000010) == 0x00000010) && input.getBytesUntilLimit() > 0) {
                joiningSecondaries_ = new java.util.LinkedList<java.lang.Long>();
                mutable_bitField0_ |= 0x00000010;
              }
              while (input.getBytesUntilLimit() > 0) {
                joiningSecondaries_.add(input.readInt64());
              }
              input.popLimit(limit);
              break;
            }
            case 48: {
              if (!((mutable_bitField0_ & 0x00000020) == 0x00000020)) {
                arbiters_ = new java.util.LinkedList<java.lang.Long>();
                mutable_bitField0_ |= 0x00000020;
              }
              arbiters_.add(input.readInt64());
              break;
            }
            case 50: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              if (!((mutable_bitField0_ & 0x00000020) == 0x00000020) && input.getBytesUntilLimit() > 0) {
                arbiters_ = new java.util.LinkedList<java.lang.Long>();
                mutable_bitField0_ |= 0x00000020;
              }
              while (input.getBytesUntilLimit() > 0) {
                arbiters_.add(input.readInt64());
              }
              input.popLimit(limit);
              break;
            }
            case 56: {
              if (!((mutable_bitField0_ & 0x00000040) == 0x00000040)) {
                inactiveSecondaries_ = new java.util.LinkedList<java.lang.Long>();
                mutable_bitField0_ |= 0x00000040;
              }
              inactiveSecondaries_.add(input.readInt64());
              break;
            }
            case 58: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              if (!((mutable_bitField0_ & 0x00000040) == 0x00000040) && input.getBytesUntilLimit() > 0) {
                inactiveSecondaries_ = new java.util.LinkedList<java.lang.Long>();
                mutable_bitField0_ |= 0x00000040;
              }
              while (input.getBytesUntilLimit() > 0) {
                inactiveSecondaries_.add(input.readInt64());
              }
              input.popLimit(limit);
              break;
            }
            case 64: {
              bitField0_ |= 0x00000008;
              tempPrimary_ = input.readInt64();
              break;
            }
            case 72: {
              bitField0_ |= 0x00000010;
              secondaryCandidate_ = input.readInt64();
              break;
            }
            case 80: {
              bitField0_ |= 0x00000020;
              primaryCandidate_ = input.readInt64();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
          secondaries_ = java.util.Collections.unmodifiableList(secondaries_);
        }
        if (((mutable_bitField0_ & 0x00000010) == 0x00000010)) {
          joiningSecondaries_ = java.util.Collections.unmodifiableList(joiningSecondaries_);
        }
        if (((mutable_bitField0_ & 0x00000020) == 0x00000020)) {
          arbiters_ = java.util.Collections.unmodifiableList(arbiters_);
        }
        if (((mutable_bitField0_ & 0x00000040) == 0x00000040)) {
          inactiveSecondaries_ = java.util.Collections.unmodifiableList(inactiveSecondaries_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return py.proto.Broadcastlog.internal_static_PBMembership_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return py.proto.Broadcastlog.internal_static_PBMembership_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              py.proto.Broadcastlog.PBMembership.class, py.proto.Broadcastlog.PBMembership.Builder.class);
    }

    public static com.google.protobuf.Parser<PBMembership> PARSER =
        new com.google.protobuf.AbstractParser<PBMembership>() {
      public PBMembership parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new PBMembership(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser<PBMembership> getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int PRIMARY_FIELD_NUMBER = 1;
    private long primary_;
    /**
     * <code>required int64 primary = 1;</code>
     */
    public boolean hasPrimary() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required int64 primary = 1;</code>
     */
    public long getPrimary() {
      return primary_;
    }

    public static final int EPOCH_FIELD_NUMBER = 2;
    private int epoch_;
    /**
     * <code>required int32 epoch = 2;</code>
     */
    public boolean hasEpoch() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required int32 epoch = 2;</code>
     */
    public int getEpoch() {
      return epoch_;
    }

    public static final int GENERATION_FIELD_NUMBER = 3;
    private int generation_;
    /**
     * <code>required int32 generation = 3;</code>
     */
    public boolean hasGeneration() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>required int32 generation = 3;</code>
     */
    public int getGeneration() {
      return generation_;
    }

    public static final int SECONDARIES_FIELD_NUMBER = 4;
    private java.util.List<java.lang.Long> secondaries_;
    /**
     * <code>repeated int64 secondaries = 4;</code>
     */
    public java.util.List<java.lang.Long>
        getSecondariesList() {
      return secondaries_;
    }
    /**
     * <code>repeated int64 secondaries = 4;</code>
     */
    public int getSecondariesCount() {
      return secondaries_.size();
    }
    /**
     * <code>repeated int64 secondaries = 4;</code>
     */
    public long getSecondaries(int index) {
      return secondaries_.get(index);
    }

    public static final int JOININGSECONDARIES_FIELD_NUMBER = 5;
    private java.util.List<java.lang.Long> joiningSecondaries_;
    /**
     * <code>repeated int64 joiningSecondaries = 5;</code>
     */
    public java.util.List<java.lang.Long>
        getJoiningSecondariesList() {
      return joiningSecondaries_;
    }
    /**
     * <code>repeated int64 joiningSecondaries = 5;</code>
     */
    public int getJoiningSecondariesCount() {
      return joiningSecondaries_.size();
    }
    /**
     * <code>repeated int64 joiningSecondaries = 5;</code>
     */
    public long getJoiningSecondaries(int index) {
      return joiningSecondaries_.get(index);
    }

    public static final int ARBITERS_FIELD_NUMBER = 6;
    private java.util.List<java.lang.Long> arbiters_;
    /**
     * <code>repeated int64 arbiters = 6;</code>
     */
    public java.util.List<java.lang.Long>
        getArbitersList() {
      return arbiters_;
    }
    /**
     * <code>repeated int64 arbiters = 6;</code>
     */
    public int getArbitersCount() {
      return arbiters_.size();
    }
    /**
     * <code>repeated int64 arbiters = 6;</code>
     */
    public long getArbiters(int index) {
      return arbiters_.get(index);
    }

    public static final int INACTIVESECONDARIES_FIELD_NUMBER = 7;
    private java.util.List<java.lang.Long> inactiveSecondaries_;
    /**
     * <code>repeated int64 inactiveSecondaries = 7;</code>
     */
    public java.util.List<java.lang.Long>
        getInactiveSecondariesList() {
      return inactiveSecondaries_;
    }
    /**
     * <code>repeated int64 inactiveSecondaries = 7;</code>
     */
    public int getInactiveSecondariesCount() {
      return inactiveSecondaries_.size();
    }
    /**
     * <code>repeated int64 inactiveSecondaries = 7;</code>
     */
    public long getInactiveSecondaries(int index) {
      return inactiveSecondaries_.get(index);
    }

    public static final int TEMPPRIMARY_FIELD_NUMBER = 8;
    private long tempPrimary_;
    /**
     * <code>optional int64 tempPrimary = 8;</code>
     */
    public boolean hasTempPrimary() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * <code>optional int64 tempPrimary = 8;</code>
     */
    public long getTempPrimary() {
      return tempPrimary_;
    }

    public static final int SECONDARYCANDIDATE_FIELD_NUMBER = 9;
    private long secondaryCandidate_;
    /**
     * <code>optional int64 secondaryCandidate = 9;</code>
     */
    public boolean hasSecondaryCandidate() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * <code>optional int64 secondaryCandidate = 9;</code>
     */
    public long getSecondaryCandidate() {
      return secondaryCandidate_;
    }

    public static final int PRIMARYCANDIDATE_FIELD_NUMBER = 10;
    private long primaryCandidate_;
    /**
     * <code>optional int64 primaryCandidate = 10;</code>
     */
    public boolean hasPrimaryCandidate() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     * <code>optional int64 primaryCandidate = 10;</code>
     */
    public long getPrimaryCandidate() {
      return primaryCandidate_;
    }

    private void initFields() {
      primary_ = 0L;
      epoch_ = 0;
      generation_ = 0;
      secondaries_ = java.util.Collections.emptyList();
      joiningSecondaries_ = java.util.Collections.emptyList();
      arbiters_ = java.util.Collections.emptyList();
      inactiveSecondaries_ = java.util.Collections.emptyList();
      tempPrimary_ = 0L;
      secondaryCandidate_ = 0L;
      primaryCandidate_ = 0L;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasPrimary()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasEpoch()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasGeneration()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt64(1, primary_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, epoch_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt32(3, generation_);
      }
      for (int i = 0; i < secondaries_.size(); i++) {
        output.writeInt64(4, secondaries_.get(i));
      }
      for (int i = 0; i < joiningSecondaries_.size(); i++) {
        output.writeInt64(5, joiningSecondaries_.get(i));
      }
      for (int i = 0; i < arbiters_.size(); i++) {
        output.writeInt64(6, arbiters_.get(i));
      }
      for (int i = 0; i < inactiveSecondaries_.size(); i++) {
        output.writeInt64(7, inactiveSecondaries_.get(i));
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeInt64(8, tempPrimary_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeInt64(9, secondaryCandidate_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeInt64(10, primaryCandidate_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, primary_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, epoch_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, generation_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < secondaries_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt64SizeNoTag(secondaries_.get(i));
        }
        size += dataSize;
        size += 1 * getSecondariesList().size();
      }
      {
        int dataSize = 0;
        for (int i = 0; i < joiningSecondaries_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt64SizeNoTag(joiningSecondaries_.get(i));
        }
        size += dataSize;
        size += 1 * getJoiningSecondariesList().size();
      }
      {
        int dataSize = 0;
        for (int i = 0; i < arbiters_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt64SizeNoTag(arbiters_.get(i));
        }
        size += dataSize;
        size += 1 * getArbitersList().size();
      }
      {
        int dataSize = 0;
        for (int i = 0; i < inactiveSecondaries_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt64SizeNoTag(inactiveSecondaries_.get(i));
        }
        size += dataSize;
        size += 1 * getInactiveSecondariesList().size();
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(8, tempPrimary_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(9, secondaryCandidate_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(10, primaryCandidate_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static py.proto.Broadcastlog.PBMembership parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static py.proto.Broadcastlog.PBMembership parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBMembership parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static py.proto.Broadcastlog.PBMembership parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBMembership parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static py.proto.Broadcastlog.PBMembership parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBMembership parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static py.proto.Broadcastlog.PBMembership parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBMembership parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static py.proto.Broadcastlog.PBMembership parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(py.proto.Broadcastlog.PBMembership prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code PBMembership}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:PBMembership)
        py.proto.Broadcastlog.PBMembershipOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return py.proto.Broadcastlog.internal_static_PBMembership_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return py.proto.Broadcastlog.internal_static_PBMembership_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                py.proto.Broadcastlog.PBMembership.class, py.proto.Broadcastlog.PBMembership.Builder.class);
      }

      // Construct using py.proto.Broadcastlog.PBMembership.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        primary_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000001);
        epoch_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        generation_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        secondaries_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000008);
        joiningSecondaries_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000010);
        arbiters_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000020);
        inactiveSecondaries_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000040);
        tempPrimary_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000080);
        secondaryCandidate_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000100);
        primaryCandidate_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000200);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return py.proto.Broadcastlog.internal_static_PBMembership_descriptor;
      }

      public py.proto.Broadcastlog.PBMembership getDefaultInstanceForType() {
        return py.proto.Broadcastlog.PBMembership.getDefaultInstance();
      }

      public py.proto.Broadcastlog.PBMembership build() {
        py.proto.Broadcastlog.PBMembership result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public py.proto.Broadcastlog.PBMembership buildPartial() {
        py.proto.Broadcastlog.PBMembership result = new py.proto.Broadcastlog.PBMembership(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.primary_ = primary_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.epoch_ = epoch_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.generation_ = generation_;
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          secondaries_ = java.util.Collections.unmodifiableList(secondaries_);
          bitField0_ = (bitField0_ & ~0x00000008);
        }
        result.secondaries_ = secondaries_;
        if (((bitField0_ & 0x00000010) == 0x00000010)) {
          joiningSecondaries_ = java.util.Collections.unmodifiableList(joiningSecondaries_);
          bitField0_ = (bitField0_ & ~0x00000010);
        }
        result.joiningSecondaries_ = joiningSecondaries_;
        if (((bitField0_ & 0x00000020) == 0x00000020)) {
          arbiters_ = java.util.Collections.unmodifiableList(arbiters_);
          bitField0_ = (bitField0_ & ~0x00000020);
        }
        result.arbiters_ = arbiters_;
        if (((bitField0_ & 0x00000040) == 0x00000040)) {
          inactiveSecondaries_ = java.util.Collections.unmodifiableList(inactiveSecondaries_);
          bitField0_ = (bitField0_ & ~0x00000040);
        }
        result.inactiveSecondaries_ = inactiveSecondaries_;
        if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
          to_bitField0_ |= 0x00000008;
        }
        result.tempPrimary_ = tempPrimary_;
        if (((from_bitField0_ & 0x00000100) == 0x00000100)) {
          to_bitField0_ |= 0x00000010;
        }
        result.secondaryCandidate_ = secondaryCandidate_;
        if (((from_bitField0_ & 0x00000200) == 0x00000200)) {
          to_bitField0_ |= 0x00000020;
        }
        result.primaryCandidate_ = primaryCandidate_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof py.proto.Broadcastlog.PBMembership) {
          return mergeFrom((py.proto.Broadcastlog.PBMembership)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(py.proto.Broadcastlog.PBMembership other) {
        if (other == py.proto.Broadcastlog.PBMembership.getDefaultInstance()) return this;
        if (other.hasPrimary()) {
          setPrimary(other.getPrimary());
        }
        if (other.hasEpoch()) {
          setEpoch(other.getEpoch());
        }
        if (other.hasGeneration()) {
          setGeneration(other.getGeneration());
        }
        if (!other.secondaries_.isEmpty()) {
          if (secondaries_.isEmpty()) {
            secondaries_ = other.secondaries_;
            bitField0_ = (bitField0_ & ~0x00000008);
          } else {
            ensureSecondariesIsMutable();
            secondaries_.addAll(other.secondaries_);
          }
          onChanged();
        }
        if (!other.joiningSecondaries_.isEmpty()) {
          if (joiningSecondaries_.isEmpty()) {
            joiningSecondaries_ = other.joiningSecondaries_;
            bitField0_ = (bitField0_ & ~0x00000010);
          } else {
            ensureJoiningSecondariesIsMutable();
            joiningSecondaries_.addAll(other.joiningSecondaries_);
          }
          onChanged();
        }
        if (!other.arbiters_.isEmpty()) {
          if (arbiters_.isEmpty()) {
            arbiters_ = other.arbiters_;
            bitField0_ = (bitField0_ & ~0x00000020);
          } else {
            ensureArbitersIsMutable();
            arbiters_.addAll(other.arbiters_);
          }
          onChanged();
        }
        if (!other.inactiveSecondaries_.isEmpty()) {
          if (inactiveSecondaries_.isEmpty()) {
            inactiveSecondaries_ = other.inactiveSecondaries_;
            bitField0_ = (bitField0_ & ~0x00000040);
          } else {
            ensureInactiveSecondariesIsMutable();
            inactiveSecondaries_.addAll(other.inactiveSecondaries_);
          }
          onChanged();
        }
        if (other.hasTempPrimary()) {
          setTempPrimary(other.getTempPrimary());
        }
        if (other.hasSecondaryCandidate()) {
          setSecondaryCandidate(other.getSecondaryCandidate());
        }
        if (other.hasPrimaryCandidate()) {
          setPrimaryCandidate(other.getPrimaryCandidate());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasPrimary()) {
          
          return false;
        }
        if (!hasEpoch()) {
          
          return false;
        }
        if (!hasGeneration()) {
          
          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        py.proto.Broadcastlog.PBMembership parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (py.proto.Broadcastlog.PBMembership) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private long primary_ ;
      /**
       * <code>required int64 primary = 1;</code>
       */
      public boolean hasPrimary() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required int64 primary = 1;</code>
       */
      public long getPrimary() {
        return primary_;
      }
      /**
       * <code>required int64 primary = 1;</code>
       */
      public Builder setPrimary(long value) {
        bitField0_ |= 0x00000001;
        primary_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int64 primary = 1;</code>
       */
      public Builder clearPrimary() {
        bitField0_ = (bitField0_ & ~0x00000001);
        primary_ = 0L;
        onChanged();
        return this;
      }

      private int epoch_ ;
      /**
       * <code>required int32 epoch = 2;</code>
       */
      public boolean hasEpoch() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required int32 epoch = 2;</code>
       */
      public int getEpoch() {
        return epoch_;
      }
      /**
       * <code>required int32 epoch = 2;</code>
       */
      public Builder setEpoch(int value) {
        bitField0_ |= 0x00000002;
        epoch_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int32 epoch = 2;</code>
       */
      public Builder clearEpoch() {
        bitField0_ = (bitField0_ & ~0x00000002);
        epoch_ = 0;
        onChanged();
        return this;
      }

      private int generation_ ;
      /**
       * <code>required int32 generation = 3;</code>
       */
      public boolean hasGeneration() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>required int32 generation = 3;</code>
       */
      public int getGeneration() {
        return generation_;
      }
      /**
       * <code>required int32 generation = 3;</code>
       */
      public Builder setGeneration(int value) {
        bitField0_ |= 0x00000004;
        generation_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int32 generation = 3;</code>
       */
      public Builder clearGeneration() {
        bitField0_ = (bitField0_ & ~0x00000004);
        generation_ = 0;
        onChanged();
        return this;
      }

      private java.util.List<java.lang.Long> secondaries_ = java.util.Collections.emptyList();
      private void ensureSecondariesIsMutable() {
        if (!((bitField0_ & 0x00000008) == 0x00000008)) {
          secondaries_ = new java.util.LinkedList<java.lang.Long>(secondaries_);
          bitField0_ |= 0x00000008;
         }
      }
      /**
       * <code>repeated int64 secondaries = 4;</code>
       */
      public java.util.List<java.lang.Long>
          getSecondariesList() {
        return java.util.Collections.unmodifiableList(secondaries_);
      }
      /**
       * <code>repeated int64 secondaries = 4;</code>
       */
      public int getSecondariesCount() {
        return secondaries_.size();
      }
      /**
       * <code>repeated int64 secondaries = 4;</code>
       */
      public long getSecondaries(int index) {
        return secondaries_.get(index);
      }
      /**
       * <code>repeated int64 secondaries = 4;</code>
       */
      public Builder setSecondaries(
          int index, long value) {
        ensureSecondariesIsMutable();
        secondaries_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated int64 secondaries = 4;</code>
       */
      public Builder addSecondaries(long value) {
        ensureSecondariesIsMutable();
        secondaries_.add(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated int64 secondaries = 4;</code>
       */
      public Builder addAllSecondaries(
          java.lang.Iterable<? extends java.lang.Long> values) {
        ensureSecondariesIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, secondaries_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated int64 secondaries = 4;</code>
       */
      public Builder clearSecondaries() {
        secondaries_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000008);
        onChanged();
        return this;
      }

      private java.util.List<java.lang.Long> joiningSecondaries_ = java.util.Collections.emptyList();
      private void ensureJoiningSecondariesIsMutable() {
        if (!((bitField0_ & 0x00000010) == 0x00000010)) {
          joiningSecondaries_ = new java.util.LinkedList<java.lang.Long>(joiningSecondaries_);
          bitField0_ |= 0x00000010;
         }
      }
      /**
       * <code>repeated int64 joiningSecondaries = 5;</code>
       */
      public java.util.List<java.lang.Long>
          getJoiningSecondariesList() {
        return java.util.Collections.unmodifiableList(joiningSecondaries_);
      }
      /**
       * <code>repeated int64 joiningSecondaries = 5;</code>
       */
      public int getJoiningSecondariesCount() {
        return joiningSecondaries_.size();
      }
      /**
       * <code>repeated int64 joiningSecondaries = 5;</code>
       */
      public long getJoiningSecondaries(int index) {
        return joiningSecondaries_.get(index);
      }
      /**
       * <code>repeated int64 joiningSecondaries = 5;</code>
       */
      public Builder setJoiningSecondaries(
          int index, long value) {
        ensureJoiningSecondariesIsMutable();
        joiningSecondaries_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated int64 joiningSecondaries = 5;</code>
       */
      public Builder addJoiningSecondaries(long value) {
        ensureJoiningSecondariesIsMutable();
        joiningSecondaries_.add(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated int64 joiningSecondaries = 5;</code>
       */
      public Builder addAllJoiningSecondaries(
          java.lang.Iterable<? extends java.lang.Long> values) {
        ensureJoiningSecondariesIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, joiningSecondaries_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated int64 joiningSecondaries = 5;</code>
       */
      public Builder clearJoiningSecondaries() {
        joiningSecondaries_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000010);
        onChanged();
        return this;
      }

      private java.util.List<java.lang.Long> arbiters_ = java.util.Collections.emptyList();
      private void ensureArbitersIsMutable() {
        if (!((bitField0_ & 0x00000020) == 0x00000020)) {
          arbiters_ = new java.util.LinkedList<java.lang.Long>(arbiters_);
          bitField0_ |= 0x00000020;
         }
      }
      /**
       * <code>repeated int64 arbiters = 6;</code>
       */
      public java.util.List<java.lang.Long>
          getArbitersList() {
        return java.util.Collections.unmodifiableList(arbiters_);
      }
      /**
       * <code>repeated int64 arbiters = 6;</code>
       */
      public int getArbitersCount() {
        return arbiters_.size();
      }
      /**
       * <code>repeated int64 arbiters = 6;</code>
       */
      public long getArbiters(int index) {
        return arbiters_.get(index);
      }
      /**
       * <code>repeated int64 arbiters = 6;</code>
       */
      public Builder setArbiters(
          int index, long value) {
        ensureArbitersIsMutable();
        arbiters_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated int64 arbiters = 6;</code>
       */
      public Builder addArbiters(long value) {
        ensureArbitersIsMutable();
        arbiters_.add(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated int64 arbiters = 6;</code>
       */
      public Builder addAllArbiters(
          java.lang.Iterable<? extends java.lang.Long> values) {
        ensureArbitersIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, arbiters_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated int64 arbiters = 6;</code>
       */
      public Builder clearArbiters() {
        arbiters_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000020);
        onChanged();
        return this;
      }

      private java.util.List<java.lang.Long> inactiveSecondaries_ = java.util.Collections.emptyList();
      private void ensureInactiveSecondariesIsMutable() {
        if (!((bitField0_ & 0x00000040) == 0x00000040)) {
          inactiveSecondaries_ = new java.util.LinkedList<java.lang.Long>(inactiveSecondaries_);
          bitField0_ |= 0x00000040;
         }
      }
      /**
       * <code>repeated int64 inactiveSecondaries = 7;</code>
       */
      public java.util.List<java.lang.Long>
          getInactiveSecondariesList() {
        return java.util.Collections.unmodifiableList(inactiveSecondaries_);
      }
      /**
       * <code>repeated int64 inactiveSecondaries = 7;</code>
       */
      public int getInactiveSecondariesCount() {
        return inactiveSecondaries_.size();
      }
      /**
       * <code>repeated int64 inactiveSecondaries = 7;</code>
       */
      public long getInactiveSecondaries(int index) {
        return inactiveSecondaries_.get(index);
      }
      /**
       * <code>repeated int64 inactiveSecondaries = 7;</code>
       */
      public Builder setInactiveSecondaries(
          int index, long value) {
        ensureInactiveSecondariesIsMutable();
        inactiveSecondaries_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated int64 inactiveSecondaries = 7;</code>
       */
      public Builder addInactiveSecondaries(long value) {
        ensureInactiveSecondariesIsMutable();
        inactiveSecondaries_.add(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated int64 inactiveSecondaries = 7;</code>
       */
      public Builder addAllInactiveSecondaries(
          java.lang.Iterable<? extends java.lang.Long> values) {
        ensureInactiveSecondariesIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, inactiveSecondaries_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated int64 inactiveSecondaries = 7;</code>
       */
      public Builder clearInactiveSecondaries() {
        inactiveSecondaries_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000040);
        onChanged();
        return this;
      }

      private long tempPrimary_ ;
      /**
       * <code>optional int64 tempPrimary = 8;</code>
       */
      public boolean hasTempPrimary() {
        return ((bitField0_ & 0x00000080) == 0x00000080);
      }
      /**
       * <code>optional int64 tempPrimary = 8;</code>
       */
      public long getTempPrimary() {
        return tempPrimary_;
      }
      /**
       * <code>optional int64 tempPrimary = 8;</code>
       */
      public Builder setTempPrimary(long value) {
        bitField0_ |= 0x00000080;
        tempPrimary_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int64 tempPrimary = 8;</code>
       */
      public Builder clearTempPrimary() {
        bitField0_ = (bitField0_ & ~0x00000080);
        tempPrimary_ = 0L;
        onChanged();
        return this;
      }

      private long secondaryCandidate_ ;
      /**
       * <code>optional int64 secondaryCandidate = 9;</code>
       */
      public boolean hasSecondaryCandidate() {
        return ((bitField0_ & 0x00000100) == 0x00000100);
      }
      /**
       * <code>optional int64 secondaryCandidate = 9;</code>
       */
      public long getSecondaryCandidate() {
        return secondaryCandidate_;
      }
      /**
       * <code>optional int64 secondaryCandidate = 9;</code>
       */
      public Builder setSecondaryCandidate(long value) {
        bitField0_ |= 0x00000100;
        secondaryCandidate_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int64 secondaryCandidate = 9;</code>
       */
      public Builder clearSecondaryCandidate() {
        bitField0_ = (bitField0_ & ~0x00000100);
        secondaryCandidate_ = 0L;
        onChanged();
        return this;
      }

      private long primaryCandidate_ ;
      /**
       * <code>optional int64 primaryCandidate = 10;</code>
       */
      public boolean hasPrimaryCandidate() {
        return ((bitField0_ & 0x00000200) == 0x00000200);
      }
      /**
       * <code>optional int64 primaryCandidate = 10;</code>
       */
      public long getPrimaryCandidate() {
        return primaryCandidate_;
      }
      /**
       * <code>optional int64 primaryCandidate = 10;</code>
       */
      public Builder setPrimaryCandidate(long value) {
        bitField0_ |= 0x00000200;
        primaryCandidate_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int64 primaryCandidate = 10;</code>
       */
      public Builder clearPrimaryCandidate() {
        bitField0_ = (bitField0_ & ~0x00000200);
        primaryCandidate_ = 0L;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:PBMembership)
    }

    static {
      defaultInstance = new PBMembership(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:PBMembership)
  }

  public interface PBWriteRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:PBWriteRequest)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>required int64 requestId = 1;</code>
     */
    boolean hasRequestId();
    /**
     * <code>required int64 requestId = 1;</code>
     */
    long getRequestId();

    /**
     * <code>required int64 volumeId = 2;</code>
     */
    boolean hasVolumeId();
    /**
     * <code>required int64 volumeId = 2;</code>
     */
    long getVolumeId();

    /**
     * <code>required int32 segIndex = 3;</code>
     */
    boolean hasSegIndex();
    /**
     * <code>required int32 segIndex = 3;</code>
     */
    int getSegIndex();

    /**
     * <code>required int32 failTimes = 4;</code>
     */
    boolean hasFailTimes();
    /**
     * <code>required int32 failTimes = 4;</code>
     */
    int getFailTimes();

    /**
     * <code>required bool zombieWrite = 5;</code>
     */
    boolean hasZombieWrite();
    /**
     * <code>required bool zombieWrite = 5;</code>
     */
    boolean getZombieWrite();

    /**
     * <code>required .PBMembership membership = 6;</code>
     */
    boolean hasMembership();
    /**
     * <code>required .PBMembership membership = 6;</code>
     */
    py.proto.Broadcastlog.PBMembership getMembership();
    /**
     * <code>required .PBMembership membership = 6;</code>
     */
    py.proto.Broadcastlog.PBMembershipOrBuilder getMembershipOrBuilder();

    /**
     * <code>required int32 snapshotVersion = 7;</code>
     *
     * <pre>
     * the snapshot version for synchronized the snapshot information
     * </pre>
     */
    boolean hasSnapshotVersion();
    /**
     * <code>required int32 snapshotVersion = 7;</code>
     *
     * <pre>
     * the snapshot version for synchronized the snapshot information
     * </pre>
     */
    int getSnapshotVersion();

    /**
     * <code>repeated .PBWriteRequestUnit requestUnits = 8;</code>
     */
    java.util.List<py.proto.Broadcastlog.PBWriteRequestUnit> 
        getRequestUnitsList();
    /**
     * <code>repeated .PBWriteRequestUnit requestUnits = 8;</code>
     */
    py.proto.Broadcastlog.PBWriteRequestUnit getRequestUnits(int index);
    /**
     * <code>repeated .PBWriteRequestUnit requestUnits = 8;</code>
     */
    int getRequestUnitsCount();
    /**
     * <code>repeated .PBWriteRequestUnit requestUnits = 8;</code>
     */
    java.util.List<? extends py.proto.Broadcastlog.PBWriteRequestUnitOrBuilder> 
        getRequestUnitsOrBuilderList();
    /**
     * <code>repeated .PBWriteRequestUnit requestUnits = 8;</code>
     */
    py.proto.Broadcastlog.PBWriteRequestUnitOrBuilder getRequestUnitsOrBuilder(
        int index);

    /**
     * <code>repeated .PBBroadcastLogManager broadcastManagers = 9;</code>
     *
     * <pre>
     * carry with last log results
     * </pre>
     */
    java.util.List<py.proto.Broadcastlog.PBBroadcastLogManager> 
        getBroadcastManagersList();
    /**
     * <code>repeated .PBBroadcastLogManager broadcastManagers = 9;</code>
     *
     * <pre>
     * carry with last log results
     * </pre>
     */
    py.proto.Broadcastlog.PBBroadcastLogManager getBroadcastManagers(int index);
    /**
     * <code>repeated .PBBroadcastLogManager broadcastManagers = 9;</code>
     *
     * <pre>
     * carry with last log results
     * </pre>
     */
    int getBroadcastManagersCount();
    /**
     * <code>repeated .PBBroadcastLogManager broadcastManagers = 9;</code>
     *
     * <pre>
     * carry with last log results
     * </pre>
     */
    java.util.List<? extends py.proto.Broadcastlog.PBBroadcastLogManagerOrBuilder> 
        getBroadcastManagersOrBuilderList();
    /**
     * <code>repeated .PBBroadcastLogManager broadcastManagers = 9;</code>
     *
     * <pre>
     * carry with last log results
     * </pre>
     */
    py.proto.Broadcastlog.PBBroadcastLogManagerOrBuilder getBroadcastManagersOrBuilder(
        int index);

    /**
     * <code>optional bool unstablePrimaryWrite = 10;</code>
     */
    boolean hasUnstablePrimaryWrite();
    /**
     * <code>optional bool unstablePrimaryWrite = 10;</code>
     */
    boolean getUnstablePrimaryWrite();
  }
  /**
   * Protobuf type {@code PBWriteRequest}
   */
  public static final class PBWriteRequest extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:PBWriteRequest)
      PBWriteRequestOrBuilder {
    // Use PBWriteRequest.newBuilder() to construct.
    private PBWriteRequest(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      initFields();
      this.unknownFields = builder.getUnknownFields();
    }
    private PBWriteRequest(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final PBWriteRequest defaultInstance;
    public static PBWriteRequest getDefaultInstance() {
      return defaultInstance;
    }

    public PBWriteRequest getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private PBWriteRequest(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              requestId_ = input.readInt64();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              volumeId_ = input.readInt64();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              segIndex_ = input.readInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              failTimes_ = input.readInt32();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              zombieWrite_ = input.readBool();
              break;
            }
            case 50: {
              py.proto.Broadcastlog.PBMembership.Builder subBuilder = null;
              if (((bitField0_ & 0x00000020) == 0x00000020)) {
                subBuilder = membership_.toBuilder();
              }
              membership_ = input.readMessage(py.proto.Broadcastlog.PBMembership.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(membership_);
                membership_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000020;
              break;
            }
            case 56: {
              bitField0_ |= 0x00000040;
              snapshotVersion_ = input.readInt32();
              break;
            }
            case 66: {
              if (!((mutable_bitField0_ & 0x00000080) == 0x00000080)) {
                requestUnits_ = new java.util.LinkedList<py.proto.Broadcastlog.PBWriteRequestUnit>();
                mutable_bitField0_ |= 0x00000080;
              }
              requestUnits_.add(input.readMessage(py.proto.Broadcastlog.PBWriteRequestUnit.PARSER, extensionRegistry));
              break;
            }
            case 74: {
              if (!((mutable_bitField0_ & 0x00000100) == 0x00000100)) {
                broadcastManagers_ = new java.util.LinkedList<py.proto.Broadcastlog.PBBroadcastLogManager>();
                mutable_bitField0_ |= 0x00000100;
              }
              broadcastManagers_.add(input.readMessage(py.proto.Broadcastlog.PBBroadcastLogManager.PARSER, extensionRegistry));
              break;
            }
            case 80: {
              bitField0_ |= 0x00000080;
              unstablePrimaryWrite_ = input.readBool();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000080) == 0x00000080)) {
          requestUnits_ = java.util.Collections.unmodifiableList(requestUnits_);
        }
        if (((mutable_bitField0_ & 0x00000100) == 0x00000100)) {
          broadcastManagers_ = java.util.Collections.unmodifiableList(broadcastManagers_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return py.proto.Broadcastlog.internal_static_PBWriteRequest_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return py.proto.Broadcastlog.internal_static_PBWriteRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              py.proto.Broadcastlog.PBWriteRequest.class, py.proto.Broadcastlog.PBWriteRequest.Builder.class);
    }

    public static com.google.protobuf.Parser<PBWriteRequest> PARSER =
        new com.google.protobuf.AbstractParser<PBWriteRequest>() {
      public PBWriteRequest parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new PBWriteRequest(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser<PBWriteRequest> getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int REQUESTID_FIELD_NUMBER = 1;
    private long requestId_;
    /**
     * <code>required int64 requestId = 1;</code>
     */
    public boolean hasRequestId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required int64 requestId = 1;</code>
     */
    public long getRequestId() {
      return requestId_;
    }

    public static final int VOLUMEID_FIELD_NUMBER = 2;
    private long volumeId_;
    /**
     * <code>required int64 volumeId = 2;</code>
     */
    public boolean hasVolumeId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required int64 volumeId = 2;</code>
     */
    public long getVolumeId() {
      return volumeId_;
    }

    public static final int SEGINDEX_FIELD_NUMBER = 3;
    private int segIndex_;
    /**
     * <code>required int32 segIndex = 3;</code>
     */
    public boolean hasSegIndex() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>required int32 segIndex = 3;</code>
     */
    public int getSegIndex() {
      return segIndex_;
    }

    public static final int FAILTIMES_FIELD_NUMBER = 4;
    private int failTimes_;
    /**
     * <code>required int32 failTimes = 4;</code>
     */
    public boolean hasFailTimes() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * <code>required int32 failTimes = 4;</code>
     */
    public int getFailTimes() {
      return failTimes_;
    }

    public static final int ZOMBIEWRITE_FIELD_NUMBER = 5;
    private boolean zombieWrite_;
    /**
     * <code>required bool zombieWrite = 5;</code>
     */
    public boolean hasZombieWrite() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * <code>required bool zombieWrite = 5;</code>
     */
    public boolean getZombieWrite() {
      return zombieWrite_;
    }

    public static final int MEMBERSHIP_FIELD_NUMBER = 6;
    private py.proto.Broadcastlog.PBMembership membership_;
    /**
     * <code>required .PBMembership membership = 6;</code>
     */
    public boolean hasMembership() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     * <code>required .PBMembership membership = 6;</code>
     */
    public py.proto.Broadcastlog.PBMembership getMembership() {
      return membership_;
    }
    /**
     * <code>required .PBMembership membership = 6;</code>
     */
    public py.proto.Broadcastlog.PBMembershipOrBuilder getMembershipOrBuilder() {
      return membership_;
    }

    public static final int SNAPSHOTVERSION_FIELD_NUMBER = 7;
    private int snapshotVersion_;
    /**
     * <code>required int32 snapshotVersion = 7;</code>
     *
     * <pre>
     * the snapshot version for synchronized the snapshot information
     * </pre>
     */
    public boolean hasSnapshotVersion() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    /**
     * <code>required int32 snapshotVersion = 7;</code>
     *
     * <pre>
     * the snapshot version for synchronized the snapshot information
     * </pre>
     */
    public int getSnapshotVersion() {
      return snapshotVersion_;
    }

    public static final int REQUESTUNITS_FIELD_NUMBER = 8;
    private java.util.List<py.proto.Broadcastlog.PBWriteRequestUnit> requestUnits_;
    /**
     * <code>repeated .PBWriteRequestUnit requestUnits = 8;</code>
     */
    public java.util.List<py.proto.Broadcastlog.PBWriteRequestUnit> getRequestUnitsList() {
      return requestUnits_;
    }
    /**
     * <code>repeated .PBWriteRequestUnit requestUnits = 8;</code>
     */
    public java.util.List<? extends py.proto.Broadcastlog.PBWriteRequestUnitOrBuilder> 
        getRequestUnitsOrBuilderList() {
      return requestUnits_;
    }
    /**
     * <code>repeated .PBWriteRequestUnit requestUnits = 8;</code>
     */
    public int getRequestUnitsCount() {
      return requestUnits_.size();
    }
    /**
     * <code>repeated .PBWriteRequestUnit requestUnits = 8;</code>
     */
    public py.proto.Broadcastlog.PBWriteRequestUnit getRequestUnits(int index) {
      return requestUnits_.get(index);
    }
    /**
     * <code>repeated .PBWriteRequestUnit requestUnits = 8;</code>
     */
    public py.proto.Broadcastlog.PBWriteRequestUnitOrBuilder getRequestUnitsOrBuilder(
        int index) {
      return requestUnits_.get(index);
    }

    public static final int BROADCASTMANAGERS_FIELD_NUMBER = 9;
    private java.util.List<py.proto.Broadcastlog.PBBroadcastLogManager> broadcastManagers_;
    /**
     * <code>repeated .PBBroadcastLogManager broadcastManagers = 9;</code>
     *
     * <pre>
     * carry with last log results
     * </pre>
     */
    public java.util.List<py.proto.Broadcastlog.PBBroadcastLogManager> getBroadcastManagersList() {
      return broadcastManagers_;
    }
    /**
     * <code>repeated .PBBroadcastLogManager broadcastManagers = 9;</code>
     *
     * <pre>
     * carry with last log results
     * </pre>
     */
    public java.util.List<? extends py.proto.Broadcastlog.PBBroadcastLogManagerOrBuilder> 
        getBroadcastManagersOrBuilderList() {
      return broadcastManagers_;
    }
    /**
     * <code>repeated .PBBroadcastLogManager broadcastManagers = 9;</code>
     *
     * <pre>
     * carry with last log results
     * </pre>
     */
    public int getBroadcastManagersCount() {
      return broadcastManagers_.size();
    }
    /**
     * <code>repeated .PBBroadcastLogManager broadcastManagers = 9;</code>
     *
     * <pre>
     * carry with last log results
     * </pre>
     */
    public py.proto.Broadcastlog.PBBroadcastLogManager getBroadcastManagers(int index) {
      return broadcastManagers_.get(index);
    }
    /**
     * <code>repeated .PBBroadcastLogManager broadcastManagers = 9;</code>
     *
     * <pre>
     * carry with last log results
     * </pre>
     */
    public py.proto.Broadcastlog.PBBroadcastLogManagerOrBuilder getBroadcastManagersOrBuilder(
        int index) {
      return broadcastManagers_.get(index);
    }

    public static final int UNSTABLEPRIMARYWRITE_FIELD_NUMBER = 10;
    private boolean unstablePrimaryWrite_;
    /**
     * <code>optional bool unstablePrimaryWrite = 10;</code>
     */
    public boolean hasUnstablePrimaryWrite() {
      return ((bitField0_ & 0x00000080) == 0x00000080);
    }
    /**
     * <code>optional bool unstablePrimaryWrite = 10;</code>
     */
    public boolean getUnstablePrimaryWrite() {
      return unstablePrimaryWrite_;
    }

    private void initFields() {
      requestId_ = 0L;
      volumeId_ = 0L;
      segIndex_ = 0;
      failTimes_ = 0;
      zombieWrite_ = false;
      membership_ = py.proto.Broadcastlog.PBMembership.getDefaultInstance();
      snapshotVersion_ = 0;
      requestUnits_ = java.util.Collections.emptyList();
      broadcastManagers_ = java.util.Collections.emptyList();
      unstablePrimaryWrite_ = false;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasRequestId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasVolumeId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasSegIndex()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasFailTimes()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasZombieWrite()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasMembership()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasSnapshotVersion()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getMembership().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      for (int i = 0; i < getRequestUnitsCount(); i++) {
        if (!getRequestUnits(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      for (int i = 0; i < getBroadcastManagersCount(); i++) {
        if (!getBroadcastManagers(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt64(1, requestId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt64(2, volumeId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt32(3, segIndex_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeInt32(4, failTimes_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeBool(5, zombieWrite_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeMessage(6, membership_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        output.writeInt32(7, snapshotVersion_);
      }
      for (int i = 0; i < requestUnits_.size(); i++) {
        output.writeMessage(8, requestUnits_.get(i));
      }
      for (int i = 0; i < broadcastManagers_.size(); i++) {
        output.writeMessage(9, broadcastManagers_.get(i));
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        output.writeBool(10, unstablePrimaryWrite_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, requestId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(2, volumeId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, segIndex_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, failTimes_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(5, zombieWrite_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(6, membership_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(7, snapshotVersion_);
      }
      for (int i = 0; i < requestUnits_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(8, requestUnits_.get(i));
      }
      for (int i = 0; i < broadcastManagers_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(9, broadcastManagers_.get(i));
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(10, unstablePrimaryWrite_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static py.proto.Broadcastlog.PBWriteRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static py.proto.Broadcastlog.PBWriteRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBWriteRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static py.proto.Broadcastlog.PBWriteRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBWriteRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static py.proto.Broadcastlog.PBWriteRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBWriteRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static py.proto.Broadcastlog.PBWriteRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBWriteRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static py.proto.Broadcastlog.PBWriteRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(py.proto.Broadcastlog.PBWriteRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code PBWriteRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:PBWriteRequest)
        py.proto.Broadcastlog.PBWriteRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return py.proto.Broadcastlog.internal_static_PBWriteRequest_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return py.proto.Broadcastlog.internal_static_PBWriteRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                py.proto.Broadcastlog.PBWriteRequest.class, py.proto.Broadcastlog.PBWriteRequest.Builder.class);
      }
      
      private PBWriteRequest pbWriteRequest;

      // Construct using py.proto.Broadcastlog.PBWriteRequest.newBuilder()
      private Builder() {
    	pbWriteRequest = new PBWriteRequest(this);
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getMembershipFieldBuilder();
          getRequestUnitsFieldBuilder();
          getBroadcastManagersFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        pbWriteRequest.requestId_ = 0L;
        pbWriteRequest.bitField0_ = (pbWriteRequest.bitField0_ & ~0x00000001);
        pbWriteRequest.volumeId_ = 0L;
        pbWriteRequest.bitField0_ = (pbWriteRequest.bitField0_ & ~0x00000002);
        pbWriteRequest.segIndex_ = 0;
        pbWriteRequest.bitField0_ = (pbWriteRequest.bitField0_ & ~0x00000004);
        pbWriteRequest.failTimes_ = 0;
        pbWriteRequest.bitField0_ = (pbWriteRequest.bitField0_ & ~0x00000008);
        pbWriteRequest.zombieWrite_ = false;
        pbWriteRequest.bitField0_ = (pbWriteRequest.bitField0_ & ~0x00000010);
		if (membershipBuilder_ == null) {
        	pbWriteRequest.membership_ = py.proto.Broadcastlog.PBMembership.getDefaultInstance();
        } else {
          membershipBuilder_.clear();
        }
        pbWriteRequest.bitField0_ = (pbWriteRequest.bitField0_ & ~0x00000020);
        pbWriteRequest.snapshotVersion_ = 0;
        pbWriteRequest.bitField0_ = (pbWriteRequest.bitField0_ & ~0x00000040);
        if (requestUnitsBuilder_ == null) {
        	pbWriteRequest.requestUnits_ = java.util.Collections.emptyList();
        	pbWriteRequest.bitField0_ = (pbWriteRequest.bitField0_ & ~0x00000080);
        } else {
          requestUnitsBuilder_.clear();
        }
        if (broadcastManagersBuilder_ == null) {
        	pbWriteRequest.broadcastManagers_ = java.util.Collections.emptyList();
          pbWriteRequest.bitField0_ = (pbWriteRequest.bitField0_ & ~0x00000100);
        } else {
          broadcastManagersBuilder_.clear();
        }
        pbWriteRequest.unstablePrimaryWrite_ = false;
        pbWriteRequest.bitField0_ = (pbWriteRequest.bitField0_ & ~0x00000200);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return py.proto.Broadcastlog.internal_static_PBWriteRequest_descriptor;
      }

      public py.proto.Broadcastlog.PBWriteRequest getDefaultInstanceForType() {
        return py.proto.Broadcastlog.PBWriteRequest.getDefaultInstance();
      }

      public py.proto.Broadcastlog.PBWriteRequest build() {
        py.proto.Broadcastlog.PBWriteRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public py.proto.Broadcastlog.PBWriteRequest buildPartial() {
    	  
    	  if (membershipBuilder_ != null) {
    		  pbWriteRequest.membership_ = membershipBuilder_.build();
    		  pbWriteRequest.bitField0_ |= 0x00000020; 
    	  }
    	  if (requestUnitsBuilder_ != null) {
    		  pbWriteRequest.requestUnits_ = requestUnitsBuilder_.build();
    		  pbWriteRequest.bitField0_ |= 0x00000080; 
    	  }
    	  if (broadcastManagersBuilder_ != null) {
    		  pbWriteRequest.broadcastManagers_ = broadcastManagersBuilder_.build();
    		  pbWriteRequest.bitField0_ |= 0x00000100; 
    	  }

        onBuilt();
        return pbWriteRequest;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof py.proto.Broadcastlog.PBWriteRequest) {
          return mergeFrom((py.proto.Broadcastlog.PBWriteRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(py.proto.Broadcastlog.PBWriteRequest other) {
        if (other == py.proto.Broadcastlog.PBWriteRequest.getDefaultInstance()) return this;
        if (other.hasRequestId()) {
          setRequestId(other.getRequestId());
        }
        if (other.hasVolumeId()) {
          setVolumeId(other.getVolumeId());
        }
        if (other.hasSegIndex()) {
          setSegIndex(other.getSegIndex());
        }
        if (other.hasFailTimes()) {
          setFailTimes(other.getFailTimes());
        }
        if (other.hasZombieWrite()) {
          setZombieWrite(other.getZombieWrite());
        }
        if (other.hasMembership()) {
          mergeMembership(other.getMembership());
        }
        if (other.hasSnapshotVersion()) {
          setSnapshotVersion(other.getSnapshotVersion());
        }
        if (requestUnitsBuilder_ == null) {
          if (!other.requestUnits_.isEmpty()) {
            if (pbWriteRequest.requestUnits_.isEmpty()) {
            	pbWriteRequest.requestUnits_ = other.requestUnits_;
              pbWriteRequest.bitField0_ = (pbWriteRequest.bitField0_ & ~0x00000080);
            } else {
              ensureRequestUnitsIsMutable();
              pbWriteRequest.requestUnits_.addAll(other.requestUnits_);
            }
            onChanged();
          }
        } else {
          if (!other.requestUnits_.isEmpty()) {
            if (requestUnitsBuilder_.isEmpty()) {
              requestUnitsBuilder_.dispose();
              requestUnitsBuilder_ = null;
              pbWriteRequest.requestUnits_ = other.requestUnits_;
              pbWriteRequest.bitField0_ = (pbWriteRequest.bitField0_ & ~0x00000080);
              requestUnitsBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getRequestUnitsFieldBuilder() : null;
            } else {
              requestUnitsBuilder_.addAllMessages(other.requestUnits_);
            }
          }
        }
        if (broadcastManagersBuilder_ == null) {
          if (!other.broadcastManagers_.isEmpty()) {
            if (pbWriteRequest.broadcastManagers_.isEmpty()) {
            	pbWriteRequest.broadcastManagers_ = other.broadcastManagers_;
            	pbWriteRequest.bitField0_ = (pbWriteRequest.bitField0_ & ~0x00000100);
            } else {
              ensureBroadcastManagersIsMutable();
              pbWriteRequest.broadcastManagers_.addAll(other.broadcastManagers_);
            }
            onChanged();
          }
        } else {
          if (!other.broadcastManagers_.isEmpty()) {
            if (broadcastManagersBuilder_.isEmpty()) {
              broadcastManagersBuilder_.dispose();
              broadcastManagersBuilder_ = null;
              pbWriteRequest.broadcastManagers_ = other.broadcastManagers_;
              pbWriteRequest.bitField0_ = (pbWriteRequest.bitField0_ & ~0x00000100);
              broadcastManagersBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getBroadcastManagersFieldBuilder() : null;
            } else {
              broadcastManagersBuilder_.addAllMessages(other.broadcastManagers_);
            }
          }
        }
        if (other.hasUnstablePrimaryWrite()) {
          setUnstablePrimaryWrite(other.getUnstablePrimaryWrite());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasRequestId()) {
          
          return false;
        }
        if (!hasVolumeId()) {
          
          return false;
        }
        if (!hasSegIndex()) {
          
          return false;
        }
        if (!hasFailTimes()) {
          
          return false;
        }
        if (!hasZombieWrite()) {
          
          return false;
        }
        if (!hasMembership()) {
          
          return false;
        }
        if (!hasSnapshotVersion()) {
          
          return false;
        }
        if (!getMembership().isInitialized()) {
          
          return false;
        }
        for (int i = 0; i < getRequestUnitsCount(); i++) {
          if (!getRequestUnits(i).isInitialized()) {
            
            return false;
          }
        }
        for (int i = 0; i < getBroadcastManagersCount(); i++) {
          if (!getBroadcastManagers(i).isInitialized()) {
            
            return false;
          }
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        py.proto.Broadcastlog.PBWriteRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (py.proto.Broadcastlog.PBWriteRequest) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      /**
       * <code>required int64 requestId = 1;</code>
       */
      public boolean hasRequestId() {
        return ((pbWriteRequest.bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required int64 requestId = 1;</code>
       */
      public long getRequestId() {
        return pbWriteRequest.requestId_;
      }
      /**
       * <code>required int64 requestId = 1;</code>
       */
      public Builder setRequestId(long value) {
    	  pbWriteRequest.bitField0_ |= 0x00000001;
    	  pbWriteRequest.requestId_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int64 requestId = 1;</code>
       */
      public Builder clearRequestId() {
    	  pbWriteRequest.bitField0_ = (pbWriteRequest.bitField0_ & ~0x00000001);
    	  pbWriteRequest.requestId_ = 0L;
        onChanged();
        return this;
      }

      /**
       * <code>required int64 volumeId = 2;</code>
       */
      public boolean hasVolumeId() {
        return ((pbWriteRequest.bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required int64 volumeId = 2;</code>
       */
      public long getVolumeId() {
        return pbWriteRequest.volumeId_;
      }
      /**
       * <code>required int64 volumeId = 2;</code>
       */
      public Builder setVolumeId(long value) {
    	  pbWriteRequest.bitField0_ |= 0x00000002;
    	  pbWriteRequest.volumeId_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int64 volumeId = 2;</code>
       */
      public Builder clearVolumeId() {
    	  pbWriteRequest.bitField0_ = (pbWriteRequest.bitField0_ & ~0x00000002);
    	  pbWriteRequest.volumeId_ = 0L;
        onChanged();
        return this;
      }

      /**
       * <code>required int32 segIndex = 3;</code>
       */
      public boolean hasSegIndex() {
        return ((pbWriteRequest.bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>required int32 segIndex = 3;</code>
       */
      public int getSegIndex() {
        return pbWriteRequest.segIndex_;
      }
      /**
       * <code>required int32 segIndex = 3;</code>
       */
      public Builder setSegIndex(int value) {
    	  pbWriteRequest.bitField0_ |= 0x00000004;
    	  pbWriteRequest.segIndex_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int32 segIndex = 3;</code>
       */
      public Builder clearSegIndex() {
    	  pbWriteRequest.bitField0_ = (pbWriteRequest.bitField0_ & ~0x00000004);
    	  pbWriteRequest.segIndex_ = 0;
        onChanged();
        return this;
      }

      /**
       * <code>required int32 failTimes = 4;</code>
       */
      public boolean hasFailTimes() {
        return ((pbWriteRequest.bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * <code>required int32 failTimes = 4;</code>
       */
      public int getFailTimes() {
        return pbWriteRequest.failTimes_;
      }
      /**
       * <code>required int32 failTimes = 4;</code>
       */
      public Builder setFailTimes(int value) {
    	  pbWriteRequest.bitField0_ |= 0x00000008;
    	  pbWriteRequest.failTimes_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int32 failTimes = 4;</code>
       */
      public Builder clearFailTimes() {
    	  pbWriteRequest.bitField0_ = (pbWriteRequest.bitField0_ & ~0x00000008);
    	  pbWriteRequest.failTimes_ = 0;
        onChanged();
        return this;
      }

      /**
       * <code>required bool zombieWrite = 5;</code>
       */
      public boolean hasZombieWrite() {
        return ((pbWriteRequest.bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * <code>required bool zombieWrite = 5;</code>
       */
      public boolean getZombieWrite() {
        return pbWriteRequest.zombieWrite_;
      }
      /**
       * <code>required bool zombieWrite = 5;</code>
       */
      public Builder setZombieWrite(boolean value) {
    	  pbWriteRequest.bitField0_ |= 0x00000010;
    	  pbWriteRequest.zombieWrite_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required bool zombieWrite = 5;</code>
       */
      public Builder clearZombieWrite() {
    	  pbWriteRequest.bitField0_ = (pbWriteRequest.bitField0_ & ~0x00000010);
    	  pbWriteRequest.zombieWrite_ = false;
        onChanged();
        return this;
      }

      private com.google.protobuf.SingleFieldBuilder<
      py.proto.Broadcastlog.PBMembership, py.proto.Broadcastlog.PBMembership.Builder, py.proto.Broadcastlog.PBMembershipOrBuilder> membershipBuilder_;
      /**
       * <code>required .PBMembership membership = 6;</code>
       */
      public boolean hasMembership() {
        return ((pbWriteRequest.bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * <code>required .PBMembership membership = 6;</code>
       */
      public py.proto.Broadcastlog.PBMembership getMembership() {
        if (membershipBuilder_ == null) {
          return pbWriteRequest.membership_;
        } else {
          return membershipBuilder_.getMessage();
        }
      }
      /**
       * <code>required .PBMembership membership = 6;</code>
       */
      public Builder setMembership(py.proto.Broadcastlog.PBMembership value) {
        if (membershipBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          pbWriteRequest.membership_ = value;
          onChanged();
        } else {
          membershipBuilder_.setMessage(value);
        }
        pbWriteRequest.bitField0_ |= 0x00000020;
        return this;
      }
      /**
       * <code>required .PBMembership membership = 6;</code>
       */
      public Builder setMembership(
          py.proto.Broadcastlog.PBMembership.Builder builderForValue) {
        if (membershipBuilder_ == null) {
        	pbWriteRequest.membership_ = builderForValue.build();
          onChanged();
        } else {
          membershipBuilder_.setMessage(builderForValue.build());
        }
        pbWriteRequest.bitField0_ |= 0x00000020;
        return this;
      }
      /**
       * <code>required .PBMembership membership = 6;</code>
       */
      public Builder mergeMembership(py.proto.Broadcastlog.PBMembership value) {
        if (membershipBuilder_ == null) {
          if (((pbWriteRequest.bitField0_ & 0x00000020) == 0x00000020) &&
        		  pbWriteRequest.membership_ != py.proto.Broadcastlog.PBMembership.getDefaultInstance()) {
        	  pbWriteRequest.membership_ =
              py.proto.Broadcastlog.PBMembership.newBuilder(pbWriteRequest.membership_).mergeFrom(value).buildPartial();
          } else {
        	  pbWriteRequest.membership_ = value;
          }
          onChanged();
        } else {
          membershipBuilder_.mergeFrom(value);
        }
        pbWriteRequest.bitField0_ |= 0x00000020;
        return this;
      }
      /**
       * <code>required .PBMembership membership = 6;</code>
       */
      public Builder clearMembership() {
        if (membershipBuilder_ == null) {
        	pbWriteRequest.membership_ = py.proto.Broadcastlog.PBMembership.getDefaultInstance();
          onChanged();
        } else {
          membershipBuilder_.clear();
        }
        pbWriteRequest.bitField0_ = (pbWriteRequest.bitField0_ & ~0x00000020);
        return this;
      }
      /**
       * <code>required .PBMembership membership = 6;</code>
       */
      public py.proto.Broadcastlog.PBMembership.Builder getMembershipBuilder() {
    	  pbWriteRequest.bitField0_ |= 0x00000020;
        onChanged();
        return getMembershipFieldBuilder().getBuilder();
      }
      /**
       * <code>required .PBMembership membership = 6;</code>
       */
      public py.proto.Broadcastlog.PBMembershipOrBuilder getMembershipOrBuilder() {
        if (membershipBuilder_ != null) {
          return membershipBuilder_.getMessageOrBuilder();
        } else {
          return pbWriteRequest.membership_;
        }
      }
      /**
       * <code>required .PBMembership membership = 6;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          py.proto.Broadcastlog.PBMembership, py.proto.Broadcastlog.PBMembership.Builder, py.proto.Broadcastlog.PBMembershipOrBuilder> 
          getMembershipFieldBuilder() {
        if (membershipBuilder_ == null) {
          membershipBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              py.proto.Broadcastlog.PBMembership, py.proto.Broadcastlog.PBMembership.Builder, py.proto.Broadcastlog.PBMembershipOrBuilder>(
                  getMembership(),
                  getParentForChildren(),
                  isClean());
          pbWriteRequest.membership_ = null;
        }
        return membershipBuilder_;
      }

      /**
       * <code>required int32 snapshotVersion = 7;</code>
       *
       * <pre>
       * the snapshot version for synchronized the snapshot information
       * </pre>
       */
      public boolean hasSnapshotVersion() {
        return ((pbWriteRequest.bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       * <code>required int32 snapshotVersion = 7;</code>
       *
       * <pre>
       * the snapshot version for synchronized the snapshot information
       * </pre>
       */
      public int getSnapshotVersion() {
        return pbWriteRequest.snapshotVersion_;
      }
      /**
       * <code>required int32 snapshotVersion = 7;</code>
       *
       * <pre>
       * the snapshot version for synchronized the snapshot information
       * </pre>
       */
      public Builder setSnapshotVersion(int value) {
    	  pbWriteRequest.bitField0_ |= 0x00000040;
    	  pbWriteRequest.snapshotVersion_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int32 snapshotVersion = 7;</code>
       *
       * <pre>
       * the snapshot version for synchronized the snapshot information
       * </pre>
       */
      public Builder clearSnapshotVersion() {
    	  pbWriteRequest.bitField0_ = (pbWriteRequest.bitField0_ & ~0x00000040);
    	  pbWriteRequest.snapshotVersion_ = 0;
        onChanged();
        return this;
      }

      private void ensureRequestUnitsIsMutable() {
        if (!((pbWriteRequest.bitField0_ & 0x00000080) == 0x00000080)) {
          pbWriteRequest.requestUnits_ = new java.util.LinkedList<py.proto.Broadcastlog.PBWriteRequestUnit>(pbWriteRequest.requestUnits_);
          pbWriteRequest.bitField0_ |= 0x00000080;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          py.proto.Broadcastlog.PBWriteRequestUnit, py.proto.Broadcastlog.PBWriteRequestUnit.Builder, py.proto.Broadcastlog.PBWriteRequestUnitOrBuilder> requestUnitsBuilder_;

      /**
       * <code>repeated .PBWriteRequestUnit requestUnits = 8;</code>
       */
      public java.util.List<py.proto.Broadcastlog.PBWriteRequestUnit> getRequestUnitsList() {
        if (requestUnitsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(pbWriteRequest.requestUnits_);
        } else {
          return requestUnitsBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .PBWriteRequestUnit requestUnits = 8;</code>
       */
      public int getRequestUnitsCount() {
        if (requestUnitsBuilder_ == null) {
          return pbWriteRequest.requestUnits_.size();
        } else {
          return requestUnitsBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .PBWriteRequestUnit requestUnits = 8;</code>
       */
      public py.proto.Broadcastlog.PBWriteRequestUnit getRequestUnits(int index) {
        if (requestUnitsBuilder_ == null) {
          return pbWriteRequest.requestUnits_.get(index);
        } else {
          return requestUnitsBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .PBWriteRequestUnit requestUnits = 8;</code>
       */
      public Builder setRequestUnits(
          int index, py.proto.Broadcastlog.PBWriteRequestUnit value) {
        if (requestUnitsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureRequestUnitsIsMutable();
          pbWriteRequest.requestUnits_.set(index, value);
          onChanged();
        } else {
          requestUnitsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .PBWriteRequestUnit requestUnits = 8;</code>
       */
      public Builder setRequestUnits(
          int index, py.proto.Broadcastlog.PBWriteRequestUnit.Builder builderForValue) {
        if (requestUnitsBuilder_ == null) {
          ensureRequestUnitsIsMutable();
          pbWriteRequest.requestUnits_.set(index, builderForValue.build());
          onChanged();
        } else {
          requestUnitsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .PBWriteRequestUnit requestUnits = 8;</code>
       */
      public Builder addRequestUnits(py.proto.Broadcastlog.PBWriteRequestUnit value) {
        if (requestUnitsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureRequestUnitsIsMutable();
          pbWriteRequest.requestUnits_.add(value);
          onChanged();
        } else {
          requestUnitsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .PBWriteRequestUnit requestUnits = 8;</code>
       */
      public Builder addRequestUnits(
          int index, py.proto.Broadcastlog.PBWriteRequestUnit value) {
        if (requestUnitsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureRequestUnitsIsMutable();
          pbWriteRequest.requestUnits_.add(index, value);
          onChanged();
        } else {
          requestUnitsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .PBWriteRequestUnit requestUnits = 8;</code>
       */
      public Builder addRequestUnits(
          py.proto.Broadcastlog.PBWriteRequestUnit.Builder builderForValue) {
        if (requestUnitsBuilder_ == null) {
          ensureRequestUnitsIsMutable();
          pbWriteRequest.requestUnits_.add(builderForValue.build());
          onChanged();
        } else {
          requestUnitsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .PBWriteRequestUnit requestUnits = 8;</code>
       */
      public Builder addRequestUnits(
          int index, py.proto.Broadcastlog.PBWriteRequestUnit.Builder builderForValue) {
        if (requestUnitsBuilder_ == null) {
          ensureRequestUnitsIsMutable();
          pbWriteRequest.requestUnits_.add(index, builderForValue.build());
          onChanged();
        } else {
          requestUnitsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .PBWriteRequestUnit requestUnits = 8;</code>
       */
      public Builder addAllRequestUnits(
          java.lang.Iterable<? extends py.proto.Broadcastlog.PBWriteRequestUnit> values) {
        if (requestUnitsBuilder_ == null) {
          ensureRequestUnitsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, pbWriteRequest.requestUnits_);
          onChanged();
        } else {
          requestUnitsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .PBWriteRequestUnit requestUnits = 8;</code>
       */
      public Builder clearRequestUnits() {
        if (requestUnitsBuilder_ == null) {
        	pbWriteRequest.requestUnits_ = java.util.Collections.emptyList();
          pbWriteRequest.bitField0_ = (pbWriteRequest.bitField0_ & ~0x00000080);
          onChanged();
        } else {
          requestUnitsBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .PBWriteRequestUnit requestUnits = 8;</code>
       */
      public Builder removeRequestUnits(int index) {
        if (requestUnitsBuilder_ == null) {
          ensureRequestUnitsIsMutable();
          pbWriteRequest.requestUnits_.remove(index);
          onChanged();
        } else {
          requestUnitsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .PBWriteRequestUnit requestUnits = 8;</code>
       */
      public py.proto.Broadcastlog.PBWriteRequestUnit.Builder getRequestUnitsBuilder(
          int index) {
        return getRequestUnitsFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .PBWriteRequestUnit requestUnits = 8;</code>
       */
      public py.proto.Broadcastlog.PBWriteRequestUnitOrBuilder getRequestUnitsOrBuilder(
          int index) {
        if (requestUnitsBuilder_ == null) {
          return pbWriteRequest.requestUnits_.get(index);  } else {
          return requestUnitsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .PBWriteRequestUnit requestUnits = 8;</code>
       */
      public java.util.List<? extends py.proto.Broadcastlog.PBWriteRequestUnitOrBuilder> 
           getRequestUnitsOrBuilderList() {
        if (requestUnitsBuilder_ != null) {
          return requestUnitsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(pbWriteRequest.requestUnits_);
        }
      }
      /**
       * <code>repeated .PBWriteRequestUnit requestUnits = 8;</code>
       */
      public py.proto.Broadcastlog.PBWriteRequestUnit.Builder addRequestUnitsBuilder() {
        return getRequestUnitsFieldBuilder().addBuilder(
            py.proto.Broadcastlog.PBWriteRequestUnit.getDefaultInstance());
      }
      /**
       * <code>repeated .PBWriteRequestUnit requestUnits = 8;</code>
       */
      public py.proto.Broadcastlog.PBWriteRequestUnit.Builder addRequestUnitsBuilder(
          int index) {
        return getRequestUnitsFieldBuilder().addBuilder(
            index, py.proto.Broadcastlog.PBWriteRequestUnit.getDefaultInstance());
      }
      /**
       * <code>repeated .PBWriteRequestUnit requestUnits = 8;</code>
       */
      public java.util.List<py.proto.Broadcastlog.PBWriteRequestUnit.Builder> 
           getRequestUnitsBuilderList() {
        return getRequestUnitsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          py.proto.Broadcastlog.PBWriteRequestUnit, py.proto.Broadcastlog.PBWriteRequestUnit.Builder, py.proto.Broadcastlog.PBWriteRequestUnitOrBuilder> 
          getRequestUnitsFieldBuilder() {
        if (requestUnitsBuilder_ == null) {
          requestUnitsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              py.proto.Broadcastlog.PBWriteRequestUnit, py.proto.Broadcastlog.PBWriteRequestUnit.Builder, py.proto.Broadcastlog.PBWriteRequestUnitOrBuilder>(
            		  pbWriteRequest.requestUnits_,
                  ((pbWriteRequest.bitField0_ & 0x00000080) == 0x00000080),
                  getParentForChildren(),
                  isClean());
          pbWriteRequest.requestUnits_ = null;
        }
        return requestUnitsBuilder_;
      }

      private void ensureBroadcastManagersIsMutable() {
        if (!((pbWriteRequest.bitField0_ & 0x00000100) == 0x00000100)) {
        	pbWriteRequest.broadcastManagers_ = new java.util.LinkedList<py.proto.Broadcastlog.PBBroadcastLogManager>(pbWriteRequest.broadcastManagers_);
        	pbWriteRequest.bitField0_ |= 0x00000100;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          py.proto.Broadcastlog.PBBroadcastLogManager, py.proto.Broadcastlog.PBBroadcastLogManager.Builder, py.proto.Broadcastlog.PBBroadcastLogManagerOrBuilder> broadcastManagersBuilder_;

      /**
       * <code>repeated .PBBroadcastLogManager broadcastManagers = 9;</code>
       *
       * <pre>
       * carry with last log results
       * </pre>
       */
      public java.util.List<py.proto.Broadcastlog.PBBroadcastLogManager> getBroadcastManagersList() {
        if (broadcastManagersBuilder_ == null) {
          return java.util.Collections.unmodifiableList(pbWriteRequest.broadcastManagers_);
        } else {
          return broadcastManagersBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .PBBroadcastLogManager broadcastManagers = 9;</code>
       *
       * <pre>
       * carry with last log results
       * </pre>
       */
      public int getBroadcastManagersCount() {
        if (broadcastManagersBuilder_ == null) {
          return pbWriteRequest.broadcastManagers_.size();
        } else {
          return broadcastManagersBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .PBBroadcastLogManager broadcastManagers = 9;</code>
       *
       * <pre>
       * carry with last log results
       * </pre>
       */
      public py.proto.Broadcastlog.PBBroadcastLogManager getBroadcastManagers(int index) {
        if (broadcastManagersBuilder_ == null) {
          return pbWriteRequest.broadcastManagers_.get(index);
        } else {
          return broadcastManagersBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .PBBroadcastLogManager broadcastManagers = 9;</code>
       *
       * <pre>
       * carry with last log results
       * </pre>
       */
      public Builder setBroadcastManagers(
          int index, py.proto.Broadcastlog.PBBroadcastLogManager value) {
        if (broadcastManagersBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureBroadcastManagersIsMutable();
          pbWriteRequest.broadcastManagers_.set(index, value);
          onChanged();
        } else {
          broadcastManagersBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .PBBroadcastLogManager broadcastManagers = 9;</code>
       *
       * <pre>
       * carry with last log results
       * </pre>
       */
      public Builder setBroadcastManagers(
          int index, py.proto.Broadcastlog.PBBroadcastLogManager.Builder builderForValue) {
        if (broadcastManagersBuilder_ == null) {
          ensureBroadcastManagersIsMutable();
          pbWriteRequest.broadcastManagers_.set(index, builderForValue.build());
          onChanged();
        } else {
          broadcastManagersBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .PBBroadcastLogManager broadcastManagers = 9;</code>
       *
       * <pre>
       * carry with last log results
       * </pre>
       */
      public Builder addBroadcastManagers(py.proto.Broadcastlog.PBBroadcastLogManager value) {
        if (broadcastManagersBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureBroadcastManagersIsMutable();
          pbWriteRequest.broadcastManagers_.add(value);
          onChanged();
        } else {
          broadcastManagersBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .PBBroadcastLogManager broadcastManagers = 9;</code>
       *
       * <pre>
       * carry with last log results
       * </pre>
       */
      public Builder addBroadcastManagers(
          int index, py.proto.Broadcastlog.PBBroadcastLogManager value) {
        if (broadcastManagersBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureBroadcastManagersIsMutable();
          pbWriteRequest.broadcastManagers_.add(index, value);
          onChanged();
        } else {
          broadcastManagersBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .PBBroadcastLogManager broadcastManagers = 9;</code>
       *
       * <pre>
       * carry with last log results
       * </pre>
       */
      public Builder addBroadcastManagers(
          py.proto.Broadcastlog.PBBroadcastLogManager.Builder builderForValue) {
        if (broadcastManagersBuilder_ == null) {
          ensureBroadcastManagersIsMutable();
          pbWriteRequest.broadcastManagers_.add(builderForValue.build());
          onChanged();
        } else {
          broadcastManagersBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .PBBroadcastLogManager broadcastManagers = 9;</code>
       *
       * <pre>
       * carry with last log results
       * </pre>
       */
      public Builder addBroadcastManagers(
          int index, py.proto.Broadcastlog.PBBroadcastLogManager.Builder builderForValue) {
        if (broadcastManagersBuilder_ == null) {
          ensureBroadcastManagersIsMutable();
          pbWriteRequest.broadcastManagers_.add(index, builderForValue.build());
          onChanged();
        } else {
          broadcastManagersBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .PBBroadcastLogManager broadcastManagers = 9;</code>
       *
       * <pre>
       * carry with last log results
       * </pre>
       */
      public Builder addAllBroadcastManagers(
          java.lang.Iterable<? extends py.proto.Broadcastlog.PBBroadcastLogManager> values) {
        if (broadcastManagersBuilder_ == null) {
          ensureBroadcastManagersIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, pbWriteRequest.broadcastManagers_);
          onChanged();
        } else {
          broadcastManagersBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .PBBroadcastLogManager broadcastManagers = 9;</code>
       *
       * <pre>
       * carry with last log results
       * </pre>
       */
      public Builder clearBroadcastManagers() {
        if (broadcastManagersBuilder_ == null) {
        	pbWriteRequest.broadcastManagers_ = java.util.Collections.emptyList();
        	pbWriteRequest.bitField0_ = (pbWriteRequest.bitField0_ & ~0x00000100);
          onChanged();
        } else {
          broadcastManagersBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .PBBroadcastLogManager broadcastManagers = 9;</code>
       *
       * <pre>
       * carry with last log results
       * </pre>
       */
      public Builder removeBroadcastManagers(int index) {
        if (broadcastManagersBuilder_ == null) {
          ensureBroadcastManagersIsMutable();
          pbWriteRequest.broadcastManagers_.remove(index);
          onChanged();
        } else {
          broadcastManagersBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .PBBroadcastLogManager broadcastManagers = 9;</code>
       *
       * <pre>
       * carry with last log results
       * </pre>
       */
      public py.proto.Broadcastlog.PBBroadcastLogManager.Builder getBroadcastManagersBuilder(
          int index) {
        return getBroadcastManagersFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .PBBroadcastLogManager broadcastManagers = 9;</code>
       *
       * <pre>
       * carry with last log results
       * </pre>
       */
      public py.proto.Broadcastlog.PBBroadcastLogManagerOrBuilder getBroadcastManagersOrBuilder(
          int index) {
        if (broadcastManagersBuilder_ == null) {
          return pbWriteRequest.broadcastManagers_.get(index);  } else {
          return broadcastManagersBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .PBBroadcastLogManager broadcastManagers = 9;</code>
       *
       * <pre>
       * carry with last log results
       * </pre>
       */
      public java.util.List<? extends py.proto.Broadcastlog.PBBroadcastLogManagerOrBuilder> 
           getBroadcastManagersOrBuilderList() {
        if (broadcastManagersBuilder_ != null) {
          return broadcastManagersBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(pbWriteRequest.broadcastManagers_);
        }
      }
      /**
       * <code>repeated .PBBroadcastLogManager broadcastManagers = 9;</code>
       *
       * <pre>
       * carry with last log results
       * </pre>
       */
      public py.proto.Broadcastlog.PBBroadcastLogManager.Builder addBroadcastManagersBuilder() {
        return getBroadcastManagersFieldBuilder().addBuilder(
            py.proto.Broadcastlog.PBBroadcastLogManager.getDefaultInstance());
      }
      /**
       * <code>repeated .PBBroadcastLogManager broadcastManagers = 9;</code>
       *
       * <pre>
       * carry with last log results
       * </pre>
       */
      public py.proto.Broadcastlog.PBBroadcastLogManager.Builder addBroadcastManagersBuilder(
          int index) {
        return getBroadcastManagersFieldBuilder().addBuilder(
            index, py.proto.Broadcastlog.PBBroadcastLogManager.getDefaultInstance());
      }
      /**
       * <code>repeated .PBBroadcastLogManager broadcastManagers = 9;</code>
       *
       * <pre>
       * carry with last log results
       * </pre>
       */
      public java.util.List<py.proto.Broadcastlog.PBBroadcastLogManager.Builder> 
           getBroadcastManagersBuilderList() {
        return getBroadcastManagersFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          py.proto.Broadcastlog.PBBroadcastLogManager, py.proto.Broadcastlog.PBBroadcastLogManager.Builder, py.proto.Broadcastlog.PBBroadcastLogManagerOrBuilder> 
          getBroadcastManagersFieldBuilder() {
        if (broadcastManagersBuilder_ == null) {
          broadcastManagersBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              py.proto.Broadcastlog.PBBroadcastLogManager, py.proto.Broadcastlog.PBBroadcastLogManager.Builder, py.proto.Broadcastlog.PBBroadcastLogManagerOrBuilder>(
            		  pbWriteRequest.broadcastManagers_,
                  ((pbWriteRequest.bitField0_ & 0x00000100) == 0x00000100),
                  getParentForChildren(),
                  isClean());
          pbWriteRequest.broadcastManagers_ = null;
        }
        return broadcastManagersBuilder_;
      }

      /**
       * <code>optional bool unstablePrimaryWrite = 10;</code>
       */
      public boolean hasUnstablePrimaryWrite() {
        return ((pbWriteRequest.bitField0_ & 0x00000200) == 0x00000200);
      }
      /**
       * <code>optional bool unstablePrimaryWrite = 10;</code>
       */
      public boolean getUnstablePrimaryWrite() {
        return pbWriteRequest.unstablePrimaryWrite_;
      }
      /**
       * <code>optional bool unstablePrimaryWrite = 10;</code>
       */
      public Builder setUnstablePrimaryWrite(boolean value) {
    	  pbWriteRequest.bitField0_ |= 0x00000200;
    	  pbWriteRequest.unstablePrimaryWrite_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool unstablePrimaryWrite = 10;</code>
       */
      public Builder clearUnstablePrimaryWrite() {
    	  pbWriteRequest.bitField0_ = (pbWriteRequest.bitField0_ & ~0x00000200);
    	  pbWriteRequest.unstablePrimaryWrite_ = false;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:PBWriteRequest)
    }

    static {
      defaultInstance = new PBWriteRequest(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:PBWriteRequest)
  }

  public interface PBWriteResponseUnitOrBuilder extends
      // @@protoc_insertion_point(interface_extends:PBWriteResponseUnit)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>required int64 logUUID = 1;</code>
     */
    boolean hasLogUUID();
    /**
     * <code>required int64 logUUID = 1;</code>
     */
    long getLogUUID();

    /**
     * <code>required int64 logId = 2;</code>
     */
    boolean hasLogId();
    /**
     * <code>required int64 logId = 2;</code>
     */
    long getLogId();

    /**
     * <code>required .PBIOUnitResult logResult = 3;</code>
     */
    boolean hasLogResult();
    /**
     * <code>required .PBIOUnitResult logResult = 3;</code>
     */
    py.proto.Broadcastlog.PBIOUnitResult getLogResult();
  }
  /**
   * Protobuf type {@code PBWriteResponseUnit}
   */
  public static final class PBWriteResponseUnit extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:PBWriteResponseUnit)
      PBWriteResponseUnitOrBuilder {
    // Use PBWriteResponseUnit.newBuilder() to construct.
    private PBWriteResponseUnit(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private PBWriteResponseUnit(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final PBWriteResponseUnit defaultInstance;
    public static PBWriteResponseUnit getDefaultInstance() {
      return defaultInstance;
    }

    public PBWriteResponseUnit getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private PBWriteResponseUnit(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              logUUID_ = input.readInt64();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              logId_ = input.readInt64();
              break;
            }
            case 24: {
              int rawValue = input.readEnum();
              py.proto.Broadcastlog.PBIOUnitResult value = py.proto.Broadcastlog.PBIOUnitResult.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(3, rawValue);
              } else {
                bitField0_ |= 0x00000004;
                logResult_ = value;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return py.proto.Broadcastlog.internal_static_PBWriteResponseUnit_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return py.proto.Broadcastlog.internal_static_PBWriteResponseUnit_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              py.proto.Broadcastlog.PBWriteResponseUnit.class, py.proto.Broadcastlog.PBWriteResponseUnit.Builder.class);
    }

    public static com.google.protobuf.Parser<PBWriteResponseUnit> PARSER =
        new com.google.protobuf.AbstractParser<PBWriteResponseUnit>() {
      public PBWriteResponseUnit parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new PBWriteResponseUnit(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser<PBWriteResponseUnit> getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int LOGUUID_FIELD_NUMBER = 1;
    private long logUUID_;
    /**
     * <code>required int64 logUUID = 1;</code>
     */
    public boolean hasLogUUID() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required int64 logUUID = 1;</code>
     */
    public long getLogUUID() {
      return logUUID_;
    }

    public static final int LOGID_FIELD_NUMBER = 2;
    private long logId_;
    /**
     * <code>required int64 logId = 2;</code>
     */
    public boolean hasLogId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required int64 logId = 2;</code>
     */
    public long getLogId() {
      return logId_;
    }

    public static final int LOGRESULT_FIELD_NUMBER = 3;
    private py.proto.Broadcastlog.PBIOUnitResult logResult_;
    /**
     * <code>required .PBIOUnitResult logResult = 3;</code>
     */
    public boolean hasLogResult() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>required .PBIOUnitResult logResult = 3;</code>
     */
    public py.proto.Broadcastlog.PBIOUnitResult getLogResult() {
      return logResult_;
    }

    private void initFields() {
      logUUID_ = 0L;
      logId_ = 0L;
      logResult_ = py.proto.Broadcastlog.PBIOUnitResult.OK;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasLogUUID()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasLogId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasLogResult()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt64(1, logUUID_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt64(2, logId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeEnum(3, logResult_.getNumber());
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, logUUID_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(2, logId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, logResult_.getNumber());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static py.proto.Broadcastlog.PBWriteResponseUnit parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static py.proto.Broadcastlog.PBWriteResponseUnit parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBWriteResponseUnit parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static py.proto.Broadcastlog.PBWriteResponseUnit parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBWriteResponseUnit parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static py.proto.Broadcastlog.PBWriteResponseUnit parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBWriteResponseUnit parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static py.proto.Broadcastlog.PBWriteResponseUnit parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBWriteResponseUnit parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static py.proto.Broadcastlog.PBWriteResponseUnit parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(py.proto.Broadcastlog.PBWriteResponseUnit prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code PBWriteResponseUnit}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:PBWriteResponseUnit)
        py.proto.Broadcastlog.PBWriteResponseUnitOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return py.proto.Broadcastlog.internal_static_PBWriteResponseUnit_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return py.proto.Broadcastlog.internal_static_PBWriteResponseUnit_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                py.proto.Broadcastlog.PBWriteResponseUnit.class, py.proto.Broadcastlog.PBWriteResponseUnit.Builder.class);
      }

      // Construct using py.proto.Broadcastlog.PBWriteResponseUnit.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        logUUID_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000001);
        logId_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000002);
        logResult_ = py.proto.Broadcastlog.PBIOUnitResult.OK;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return py.proto.Broadcastlog.internal_static_PBWriteResponseUnit_descriptor;
      }

      public py.proto.Broadcastlog.PBWriteResponseUnit getDefaultInstanceForType() {
        return py.proto.Broadcastlog.PBWriteResponseUnit.getDefaultInstance();
      }

      public py.proto.Broadcastlog.PBWriteResponseUnit build() {
        py.proto.Broadcastlog.PBWriteResponseUnit result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public py.proto.Broadcastlog.PBWriteResponseUnit buildPartial() {
        py.proto.Broadcastlog.PBWriteResponseUnit result = new py.proto.Broadcastlog.PBWriteResponseUnit(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.logUUID_ = logUUID_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.logId_ = logId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.logResult_ = logResult_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof py.proto.Broadcastlog.PBWriteResponseUnit) {
          return mergeFrom((py.proto.Broadcastlog.PBWriteResponseUnit)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(py.proto.Broadcastlog.PBWriteResponseUnit other) {
        if (other == py.proto.Broadcastlog.PBWriteResponseUnit.getDefaultInstance()) return this;
        if (other.hasLogUUID()) {
          setLogUUID(other.getLogUUID());
        }
        if (other.hasLogId()) {
          setLogId(other.getLogId());
        }
        if (other.hasLogResult()) {
          setLogResult(other.getLogResult());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasLogUUID()) {
          
          return false;
        }
        if (!hasLogId()) {
          
          return false;
        }
        if (!hasLogResult()) {
          
          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        py.proto.Broadcastlog.PBWriteResponseUnit parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (py.proto.Broadcastlog.PBWriteResponseUnit) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private long logUUID_ ;
      /**
       * <code>required int64 logUUID = 1;</code>
       */
      public boolean hasLogUUID() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required int64 logUUID = 1;</code>
       */
      public long getLogUUID() {
        return logUUID_;
      }
      /**
       * <code>required int64 logUUID = 1;</code>
       */
      public Builder setLogUUID(long value) {
        bitField0_ |= 0x00000001;
        logUUID_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int64 logUUID = 1;</code>
       */
      public Builder clearLogUUID() {
        bitField0_ = (bitField0_ & ~0x00000001);
        logUUID_ = 0L;
        onChanged();
        return this;
      }

      private long logId_ ;
      /**
       * <code>required int64 logId = 2;</code>
       */
      public boolean hasLogId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required int64 logId = 2;</code>
       */
      public long getLogId() {
        return logId_;
      }
      /**
       * <code>required int64 logId = 2;</code>
       */
      public Builder setLogId(long value) {
        bitField0_ |= 0x00000002;
        logId_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int64 logId = 2;</code>
       */
      public Builder clearLogId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        logId_ = 0L;
        onChanged();
        return this;
      }

      private py.proto.Broadcastlog.PBIOUnitResult logResult_ = py.proto.Broadcastlog.PBIOUnitResult.OK;
      /**
       * <code>required .PBIOUnitResult logResult = 3;</code>
       */
      public boolean hasLogResult() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>required .PBIOUnitResult logResult = 3;</code>
       */
      public py.proto.Broadcastlog.PBIOUnitResult getLogResult() {
        return logResult_;
      }
      /**
       * <code>required .PBIOUnitResult logResult = 3;</code>
       */
      public Builder setLogResult(py.proto.Broadcastlog.PBIOUnitResult value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        logResult_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required .PBIOUnitResult logResult = 3;</code>
       */
      public Builder clearLogResult() {
        bitField0_ = (bitField0_ & ~0x00000004);
        logResult_ = py.proto.Broadcastlog.PBIOUnitResult.OK;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:PBWriteResponseUnit)
    }

    static {
      defaultInstance = new PBWriteResponseUnit(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:PBWriteResponseUnit)
  }

  public interface PBWriteResponseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:PBWriteResponse)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>required int64 requestId = 1;</code>
     */
    boolean hasRequestId();
    /**
     * <code>required int64 requestId = 1;</code>
     */
    long getRequestId();

    /**
     * <code>repeated .PBWriteResponseUnit responseUnits = 2;</code>
     *
     * <pre>
     * the result of all request units
     * </pre>
     */
    java.util.List<py.proto.Broadcastlog.PBWriteResponseUnit> 
        getResponseUnitsList();
    /**
     * <code>repeated .PBWriteResponseUnit responseUnits = 2;</code>
     *
     * <pre>
     * the result of all request units
     * </pre>
     */
    py.proto.Broadcastlog.PBWriteResponseUnit getResponseUnits(int index);
    /**
     * <code>repeated .PBWriteResponseUnit responseUnits = 2;</code>
     *
     * <pre>
     * the result of all request units
     * </pre>
     */
    int getResponseUnitsCount();
    /**
     * <code>repeated .PBWriteResponseUnit responseUnits = 2;</code>
     *
     * <pre>
     * the result of all request units
     * </pre>
     */
    java.util.List<? extends py.proto.Broadcastlog.PBWriteResponseUnitOrBuilder> 
        getResponseUnitsOrBuilderList();
    /**
     * <code>repeated .PBWriteResponseUnit responseUnits = 2;</code>
     *
     * <pre>
     * the result of all request units
     * </pre>
     */
    py.proto.Broadcastlog.PBWriteResponseUnitOrBuilder getResponseUnitsOrBuilder(
        int index);

    /**
     * <code>repeated .PBBroadcastLogManager logManagersToCommit = 3;</code>
     *
     * <pre>
     * which contain the logs to be committed.
     * </pre>
     */
    java.util.List<py.proto.Broadcastlog.PBBroadcastLogManager> 
        getLogManagersToCommitList();
    /**
     * <code>repeated .PBBroadcastLogManager logManagersToCommit = 3;</code>
     *
     * <pre>
     * which contain the logs to be committed.
     * </pre>
     */
    py.proto.Broadcastlog.PBBroadcastLogManager getLogManagersToCommit(int index);
    /**
     * <code>repeated .PBBroadcastLogManager logManagersToCommit = 3;</code>
     *
     * <pre>
     * which contain the logs to be committed.
     * </pre>
     */
    int getLogManagersToCommitCount();
    /**
     * <code>repeated .PBBroadcastLogManager logManagersToCommit = 3;</code>
     *
     * <pre>
     * which contain the logs to be committed.
     * </pre>
     */
    java.util.List<? extends py.proto.Broadcastlog.PBBroadcastLogManagerOrBuilder> 
        getLogManagersToCommitOrBuilderList();
    /**
     * <code>repeated .PBBroadcastLogManager logManagersToCommit = 3;</code>
     *
     * <pre>
     * which contain the logs to be committed.
     * </pre>
     */
    py.proto.Broadcastlog.PBBroadcastLogManagerOrBuilder getLogManagersToCommitOrBuilder(
        int index);

    /**
     * <code>optional .PBMembership membership = 4;</code>
     *
     * <pre>
     * if primary has found the membership changed, the variable will be filled.
     * </pre>
     */
    boolean hasMembership();
    /**
     * <code>optional .PBMembership membership = 4;</code>
     *
     * <pre>
     * if primary has found the membership changed, the variable will be filled.
     * </pre>
     */
    py.proto.Broadcastlog.PBMembership getMembership();
    /**
     * <code>optional .PBMembership membership = 4;</code>
     *
     * <pre>
     * if primary has found the membership changed, the variable will be filled.
     * </pre>
     */
    py.proto.Broadcastlog.PBMembershipOrBuilder getMembershipOrBuilder();

    /**
     * <code>optional string snapshotJson = 5;</code>
     *
     * <pre>
     * string of snapshot in data node
     * </pre>
     */
    boolean hasSnapshotJson();
    /**
     * <code>optional string snapshotJson = 5;</code>
     *
     * <pre>
     * string of snapshot in data node
     * </pre>
     */
    java.lang.String getSnapshotJson();
    /**
     * <code>optional string snapshotJson = 5;</code>
     *
     * <pre>
     * string of snapshot in data node
     * </pre>
     */
    com.google.protobuf.ByteString
        getSnapshotJsonBytes();
  }
  /**
   * Protobuf type {@code PBWriteResponse}
   */
  public static final class PBWriteResponse extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:PBWriteResponse)
      PBWriteResponseOrBuilder {
    // Use PBWriteResponse.newBuilder() to construct.
    private PBWriteResponse(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private PBWriteResponse(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final PBWriteResponse defaultInstance;
    public static PBWriteResponse getDefaultInstance() {
      return defaultInstance;
    }

    public PBWriteResponse getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private PBWriteResponse(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              requestId_ = input.readInt64();
              break;
            }
            case 18: {
              if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                responseUnits_ = new java.util.LinkedList<py.proto.Broadcastlog.PBWriteResponseUnit>();
                mutable_bitField0_ |= 0x00000002;
              }
              responseUnits_.add(input.readMessage(py.proto.Broadcastlog.PBWriteResponseUnit.PARSER, extensionRegistry));
              break;
            }
            case 26: {
              if (!((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
                logManagersToCommit_ = new java.util.LinkedList<py.proto.Broadcastlog.PBBroadcastLogManager>();
                mutable_bitField0_ |= 0x00000004;
              }
              logManagersToCommit_.add(input.readMessage(py.proto.Broadcastlog.PBBroadcastLogManager.PARSER, extensionRegistry));
              break;
            }
            case 34: {
              py.proto.Broadcastlog.PBMembership.Builder subBuilder = null;
              if (((bitField0_ & 0x00000002) == 0x00000002)) {
                subBuilder = membership_.toBuilder();
              }
              membership_ = input.readMessage(py.proto.Broadcastlog.PBMembership.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(membership_);
                membership_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000002;
              break;
            }
            case 42: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000004;
              snapshotJson_ = bs;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          responseUnits_ = java.util.Collections.unmodifiableList(responseUnits_);
        }
        if (((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
          logManagersToCommit_ = java.util.Collections.unmodifiableList(logManagersToCommit_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return py.proto.Broadcastlog.internal_static_PBWriteResponse_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return py.proto.Broadcastlog.internal_static_PBWriteResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              py.proto.Broadcastlog.PBWriteResponse.class, py.proto.Broadcastlog.PBWriteResponse.Builder.class);
    }

    public static com.google.protobuf.Parser<PBWriteResponse> PARSER =
        new com.google.protobuf.AbstractParser<PBWriteResponse>() {
      public PBWriteResponse parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new PBWriteResponse(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser<PBWriteResponse> getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int REQUESTID_FIELD_NUMBER = 1;
    private long requestId_;
    /**
     * <code>required int64 requestId = 1;</code>
     */
    public boolean hasRequestId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required int64 requestId = 1;</code>
     */
    public long getRequestId() {
      return requestId_;
    }

    public static final int RESPONSEUNITS_FIELD_NUMBER = 2;
    private java.util.List<py.proto.Broadcastlog.PBWriteResponseUnit> responseUnits_;
    /**
     * <code>repeated .PBWriteResponseUnit responseUnits = 2;</code>
     *
     * <pre>
     * the result of all request units
     * </pre>
     */
    public java.util.List<py.proto.Broadcastlog.PBWriteResponseUnit> getResponseUnitsList() {
      return responseUnits_;
    }
    /**
     * <code>repeated .PBWriteResponseUnit responseUnits = 2;</code>
     *
     * <pre>
     * the result of all request units
     * </pre>
     */
    public java.util.List<? extends py.proto.Broadcastlog.PBWriteResponseUnitOrBuilder> 
        getResponseUnitsOrBuilderList() {
      return responseUnits_;
    }
    /**
     * <code>repeated .PBWriteResponseUnit responseUnits = 2;</code>
     *
     * <pre>
     * the result of all request units
     * </pre>
     */
    public int getResponseUnitsCount() {
      return responseUnits_.size();
    }
    /**
     * <code>repeated .PBWriteResponseUnit responseUnits = 2;</code>
     *
     * <pre>
     * the result of all request units
     * </pre>
     */
    public py.proto.Broadcastlog.PBWriteResponseUnit getResponseUnits(int index) {
      return responseUnits_.get(index);
    }
    /**
     * <code>repeated .PBWriteResponseUnit responseUnits = 2;</code>
     *
     * <pre>
     * the result of all request units
     * </pre>
     */
    public py.proto.Broadcastlog.PBWriteResponseUnitOrBuilder getResponseUnitsOrBuilder(
        int index) {
      return responseUnits_.get(index);
    }

    public static final int LOGMANAGERSTOCOMMIT_FIELD_NUMBER = 3;
    private java.util.List<py.proto.Broadcastlog.PBBroadcastLogManager> logManagersToCommit_;
    /**
     * <code>repeated .PBBroadcastLogManager logManagersToCommit = 3;</code>
     *
     * <pre>
     * which contain the logs to be committed.
     * </pre>
     */
    public java.util.List<py.proto.Broadcastlog.PBBroadcastLogManager> getLogManagersToCommitList() {
      return logManagersToCommit_;
    }
    /**
     * <code>repeated .PBBroadcastLogManager logManagersToCommit = 3;</code>
     *
     * <pre>
     * which contain the logs to be committed.
     * </pre>
     */
    public java.util.List<? extends py.proto.Broadcastlog.PBBroadcastLogManagerOrBuilder> 
        getLogManagersToCommitOrBuilderList() {
      return logManagersToCommit_;
    }
    /**
     * <code>repeated .PBBroadcastLogManager logManagersToCommit = 3;</code>
     *
     * <pre>
     * which contain the logs to be committed.
     * </pre>
     */
    public int getLogManagersToCommitCount() {
      return logManagersToCommit_.size();
    }
    /**
     * <code>repeated .PBBroadcastLogManager logManagersToCommit = 3;</code>
     *
     * <pre>
     * which contain the logs to be committed.
     * </pre>
     */
    public py.proto.Broadcastlog.PBBroadcastLogManager getLogManagersToCommit(int index) {
      return logManagersToCommit_.get(index);
    }
    /**
     * <code>repeated .PBBroadcastLogManager logManagersToCommit = 3;</code>
     *
     * <pre>
     * which contain the logs to be committed.
     * </pre>
     */
    public py.proto.Broadcastlog.PBBroadcastLogManagerOrBuilder getLogManagersToCommitOrBuilder(
        int index) {
      return logManagersToCommit_.get(index);
    }

    public static final int MEMBERSHIP_FIELD_NUMBER = 4;
    private py.proto.Broadcastlog.PBMembership membership_;
    /**
     * <code>optional .PBMembership membership = 4;</code>
     *
     * <pre>
     * if primary has found the membership changed, the variable will be filled.
     * </pre>
     */
    public boolean hasMembership() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>optional .PBMembership membership = 4;</code>
     *
     * <pre>
     * if primary has found the membership changed, the variable will be filled.
     * </pre>
     */
    public py.proto.Broadcastlog.PBMembership getMembership() {
      return membership_;
    }
    /**
     * <code>optional .PBMembership membership = 4;</code>
     *
     * <pre>
     * if primary has found the membership changed, the variable will be filled.
     * </pre>
     */
    public py.proto.Broadcastlog.PBMembershipOrBuilder getMembershipOrBuilder() {
      return membership_;
    }

    public static final int SNAPSHOTJSON_FIELD_NUMBER = 5;
    private java.lang.Object snapshotJson_;
    /**
     * <code>optional string snapshotJson = 5;</code>
     *
     * <pre>
     * string of snapshot in data node
     * </pre>
     */
    public boolean hasSnapshotJson() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>optional string snapshotJson = 5;</code>
     *
     * <pre>
     * string of snapshot in data node
     * </pre>
     */
    public java.lang.String getSnapshotJson() {
      java.lang.Object ref = snapshotJson_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          snapshotJson_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string snapshotJson = 5;</code>
     *
     * <pre>
     * string of snapshot in data node
     * </pre>
     */
    public com.google.protobuf.ByteString
        getSnapshotJsonBytes() {
      java.lang.Object ref = snapshotJson_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        snapshotJson_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private void initFields() {
      requestId_ = 0L;
      responseUnits_ = java.util.Collections.emptyList();
      logManagersToCommit_ = java.util.Collections.emptyList();
      membership_ = py.proto.Broadcastlog.PBMembership.getDefaultInstance();
      snapshotJson_ = "";
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasRequestId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      for (int i = 0; i < getResponseUnitsCount(); i++) {
        if (!getResponseUnits(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      for (int i = 0; i < getLogManagersToCommitCount(); i++) {
        if (!getLogManagersToCommit(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasMembership()) {
        if (!getMembership().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt64(1, requestId_);
      }
      for (int i = 0; i < responseUnits_.size(); i++) {
        output.writeMessage(2, responseUnits_.get(i));
      }
      for (int i = 0; i < logManagersToCommit_.size(); i++) {
        output.writeMessage(3, logManagersToCommit_.get(i));
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(4, membership_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBytes(5, getSnapshotJsonBytes());
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, requestId_);
      }
      for (int i = 0; i < responseUnits_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, responseUnits_.get(i));
      }
      for (int i = 0; i < logManagersToCommit_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, logManagersToCommit_.get(i));
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, membership_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(5, getSnapshotJsonBytes());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static py.proto.Broadcastlog.PBWriteResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static py.proto.Broadcastlog.PBWriteResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBWriteResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static py.proto.Broadcastlog.PBWriteResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBWriteResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static py.proto.Broadcastlog.PBWriteResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBWriteResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static py.proto.Broadcastlog.PBWriteResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBWriteResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static py.proto.Broadcastlog.PBWriteResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(py.proto.Broadcastlog.PBWriteResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code PBWriteResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:PBWriteResponse)
        py.proto.Broadcastlog.PBWriteResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return py.proto.Broadcastlog.internal_static_PBWriteResponse_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return py.proto.Broadcastlog.internal_static_PBWriteResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                py.proto.Broadcastlog.PBWriteResponse.class, py.proto.Broadcastlog.PBWriteResponse.Builder.class);
      }

      // Construct using py.proto.Broadcastlog.PBWriteResponse.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getResponseUnitsFieldBuilder();
          getLogManagersToCommitFieldBuilder();
          getMembershipFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        requestId_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000001);
        if (responseUnitsBuilder_ == null) {
          responseUnits_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
        } else {
          responseUnitsBuilder_.clear();
        }
        if (logManagersToCommitBuilder_ == null) {
          logManagersToCommit_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000004);
        } else {
          logManagersToCommitBuilder_.clear();
        }
        if (membershipBuilder_ == null) {
          membership_ = py.proto.Broadcastlog.PBMembership.getDefaultInstance();
        } else {
          membershipBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000008);
        snapshotJson_ = "";
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return py.proto.Broadcastlog.internal_static_PBWriteResponse_descriptor;
      }

      public py.proto.Broadcastlog.PBWriteResponse getDefaultInstanceForType() {
        return py.proto.Broadcastlog.PBWriteResponse.getDefaultInstance();
      }

      public py.proto.Broadcastlog.PBWriteResponse build() {
        py.proto.Broadcastlog.PBWriteResponse result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public py.proto.Broadcastlog.PBWriteResponse buildPartial() {
        py.proto.Broadcastlog.PBWriteResponse result = new py.proto.Broadcastlog.PBWriteResponse(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.requestId_ = requestId_;
        if (responseUnitsBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            responseUnits_ = java.util.Collections.unmodifiableList(responseUnits_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.responseUnits_ = responseUnits_;
        } else {
          result.responseUnits_ = responseUnitsBuilder_.build();
        }
        if (logManagersToCommitBuilder_ == null) {
          if (((bitField0_ & 0x00000004) == 0x00000004)) {
            logManagersToCommit_ = java.util.Collections.unmodifiableList(logManagersToCommit_);
            bitField0_ = (bitField0_ & ~0x00000004);
          }
          result.logManagersToCommit_ = logManagersToCommit_;
        } else {
          result.logManagersToCommit_ = logManagersToCommitBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000002;
        }
        if (membershipBuilder_ == null) {
          result.membership_ = membership_;
        } else {
          result.membership_ = membershipBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000004;
        }
        result.snapshotJson_ = snapshotJson_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof py.proto.Broadcastlog.PBWriteResponse) {
          return mergeFrom((py.proto.Broadcastlog.PBWriteResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(py.proto.Broadcastlog.PBWriteResponse other) {
        if (other == py.proto.Broadcastlog.PBWriteResponse.getDefaultInstance()) return this;
        if (other.hasRequestId()) {
          setRequestId(other.getRequestId());
        }
        if (responseUnitsBuilder_ == null) {
          if (!other.responseUnits_.isEmpty()) {
            if (responseUnits_.isEmpty()) {
              responseUnits_ = other.responseUnits_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensureResponseUnitsIsMutable();
              responseUnits_.addAll(other.responseUnits_);
            }
            onChanged();
          }
        } else {
          if (!other.responseUnits_.isEmpty()) {
            if (responseUnitsBuilder_.isEmpty()) {
              responseUnitsBuilder_.dispose();
              responseUnitsBuilder_ = null;
              responseUnits_ = other.responseUnits_;
              bitField0_ = (bitField0_ & ~0x00000002);
              responseUnitsBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getResponseUnitsFieldBuilder() : null;
            } else {
              responseUnitsBuilder_.addAllMessages(other.responseUnits_);
            }
          }
        }
        if (logManagersToCommitBuilder_ == null) {
          if (!other.logManagersToCommit_.isEmpty()) {
            if (logManagersToCommit_.isEmpty()) {
              logManagersToCommit_ = other.logManagersToCommit_;
              bitField0_ = (bitField0_ & ~0x00000004);
            } else {
              ensureLogManagersToCommitIsMutable();
              logManagersToCommit_.addAll(other.logManagersToCommit_);
            }
            onChanged();
          }
        } else {
          if (!other.logManagersToCommit_.isEmpty()) {
            if (logManagersToCommitBuilder_.isEmpty()) {
              logManagersToCommitBuilder_.dispose();
              logManagersToCommitBuilder_ = null;
              logManagersToCommit_ = other.logManagersToCommit_;
              bitField0_ = (bitField0_ & ~0x00000004);
              logManagersToCommitBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getLogManagersToCommitFieldBuilder() : null;
            } else {
              logManagersToCommitBuilder_.addAllMessages(other.logManagersToCommit_);
            }
          }
        }
        if (other.hasMembership()) {
          mergeMembership(other.getMembership());
        }
        if (other.hasSnapshotJson()) {
          bitField0_ |= 0x00000010;
          snapshotJson_ = other.snapshotJson_;
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasRequestId()) {
          
          return false;
        }
        for (int i = 0; i < getResponseUnitsCount(); i++) {
          if (!getResponseUnits(i).isInitialized()) {
            
            return false;
          }
        }
        for (int i = 0; i < getLogManagersToCommitCount(); i++) {
          if (!getLogManagersToCommit(i).isInitialized()) {
            
            return false;
          }
        }
        if (hasMembership()) {
          if (!getMembership().isInitialized()) {
            
            return false;
          }
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        py.proto.Broadcastlog.PBWriteResponse parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (py.proto.Broadcastlog.PBWriteResponse) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private long requestId_ ;
      /**
       * <code>required int64 requestId = 1;</code>
       */
      public boolean hasRequestId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required int64 requestId = 1;</code>
       */
      public long getRequestId() {
        return requestId_;
      }
      /**
       * <code>required int64 requestId = 1;</code>
       */
      public Builder setRequestId(long value) {
        bitField0_ |= 0x00000001;
        requestId_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int64 requestId = 1;</code>
       */
      public Builder clearRequestId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        requestId_ = 0L;
        onChanged();
        return this;
      }

      private java.util.List<py.proto.Broadcastlog.PBWriteResponseUnit> responseUnits_ =
        java.util.Collections.emptyList();
      private void ensureResponseUnitsIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          responseUnits_ = new java.util.LinkedList<py.proto.Broadcastlog.PBWriteResponseUnit>(responseUnits_);
          bitField0_ |= 0x00000002;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          py.proto.Broadcastlog.PBWriteResponseUnit, py.proto.Broadcastlog.PBWriteResponseUnit.Builder, py.proto.Broadcastlog.PBWriteResponseUnitOrBuilder> responseUnitsBuilder_;

      /**
       * <code>repeated .PBWriteResponseUnit responseUnits = 2;</code>
       *
       * <pre>
       * the result of all request units
       * </pre>
       */
      public java.util.List<py.proto.Broadcastlog.PBWriteResponseUnit> getResponseUnitsList() {
        if (responseUnitsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(responseUnits_);
        } else {
          return responseUnitsBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .PBWriteResponseUnit responseUnits = 2;</code>
       *
       * <pre>
       * the result of all request units
       * </pre>
       */
      public int getResponseUnitsCount() {
        if (responseUnitsBuilder_ == null) {
          return responseUnits_.size();
        } else {
          return responseUnitsBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .PBWriteResponseUnit responseUnits = 2;</code>
       *
       * <pre>
       * the result of all request units
       * </pre>
       */
      public py.proto.Broadcastlog.PBWriteResponseUnit getResponseUnits(int index) {
        if (responseUnitsBuilder_ == null) {
          return responseUnits_.get(index);
        } else {
          return responseUnitsBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .PBWriteResponseUnit responseUnits = 2;</code>
       *
       * <pre>
       * the result of all request units
       * </pre>
       */
      public Builder setResponseUnits(
          int index, py.proto.Broadcastlog.PBWriteResponseUnit value) {
        if (responseUnitsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureResponseUnitsIsMutable();
          responseUnits_.set(index, value);
          onChanged();
        } else {
          responseUnitsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .PBWriteResponseUnit responseUnits = 2;</code>
       *
       * <pre>
       * the result of all request units
       * </pre>
       */
      public Builder setResponseUnits(
          int index, py.proto.Broadcastlog.PBWriteResponseUnit.Builder builderForValue) {
        if (responseUnitsBuilder_ == null) {
          ensureResponseUnitsIsMutable();
          responseUnits_.set(index, builderForValue.build());
          onChanged();
        } else {
          responseUnitsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .PBWriteResponseUnit responseUnits = 2;</code>
       *
       * <pre>
       * the result of all request units
       * </pre>
       */
      public Builder addResponseUnits(py.proto.Broadcastlog.PBWriteResponseUnit value) {
        if (responseUnitsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureResponseUnitsIsMutable();
          responseUnits_.add(value);
          onChanged();
        } else {
          responseUnitsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .PBWriteResponseUnit responseUnits = 2;</code>
       *
       * <pre>
       * the result of all request units
       * </pre>
       */
      public Builder addResponseUnits(
          int index, py.proto.Broadcastlog.PBWriteResponseUnit value) {
        if (responseUnitsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureResponseUnitsIsMutable();
          responseUnits_.add(index, value);
          onChanged();
        } else {
          responseUnitsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .PBWriteResponseUnit responseUnits = 2;</code>
       *
       * <pre>
       * the result of all request units
       * </pre>
       */
      public Builder addResponseUnits(
          py.proto.Broadcastlog.PBWriteResponseUnit.Builder builderForValue) {
        if (responseUnitsBuilder_ == null) {
          ensureResponseUnitsIsMutable();
          responseUnits_.add(builderForValue.build());
          onChanged();
        } else {
          responseUnitsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .PBWriteResponseUnit responseUnits = 2;</code>
       *
       * <pre>
       * the result of all request units
       * </pre>
       */
      public Builder addResponseUnits(
          int index, py.proto.Broadcastlog.PBWriteResponseUnit.Builder builderForValue) {
        if (responseUnitsBuilder_ == null) {
          ensureResponseUnitsIsMutable();
          responseUnits_.add(index, builderForValue.build());
          onChanged();
        } else {
          responseUnitsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .PBWriteResponseUnit responseUnits = 2;</code>
       *
       * <pre>
       * the result of all request units
       * </pre>
       */
      public Builder addAllResponseUnits(
          java.lang.Iterable<? extends py.proto.Broadcastlog.PBWriteResponseUnit> values) {
        if (responseUnitsBuilder_ == null) {
          ensureResponseUnitsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, responseUnits_);
          onChanged();
        } else {
          responseUnitsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .PBWriteResponseUnit responseUnits = 2;</code>
       *
       * <pre>
       * the result of all request units
       * </pre>
       */
      public Builder clearResponseUnits() {
        if (responseUnitsBuilder_ == null) {
          responseUnits_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          responseUnitsBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .PBWriteResponseUnit responseUnits = 2;</code>
       *
       * <pre>
       * the result of all request units
       * </pre>
       */
      public Builder removeResponseUnits(int index) {
        if (responseUnitsBuilder_ == null) {
          ensureResponseUnitsIsMutable();
          responseUnits_.remove(index);
          onChanged();
        } else {
          responseUnitsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .PBWriteResponseUnit responseUnits = 2;</code>
       *
       * <pre>
       * the result of all request units
       * </pre>
       */
      public py.proto.Broadcastlog.PBWriteResponseUnit.Builder getResponseUnitsBuilder(
          int index) {
        return getResponseUnitsFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .PBWriteResponseUnit responseUnits = 2;</code>
       *
       * <pre>
       * the result of all request units
       * </pre>
       */
      public py.proto.Broadcastlog.PBWriteResponseUnitOrBuilder getResponseUnitsOrBuilder(
          int index) {
        if (responseUnitsBuilder_ == null) {
          return responseUnits_.get(index);  } else {
          return responseUnitsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .PBWriteResponseUnit responseUnits = 2;</code>
       *
       * <pre>
       * the result of all request units
       * </pre>
       */
      public java.util.List<? extends py.proto.Broadcastlog.PBWriteResponseUnitOrBuilder> 
           getResponseUnitsOrBuilderList() {
        if (responseUnitsBuilder_ != null) {
          return responseUnitsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(responseUnits_);
        }
      }
      /**
       * <code>repeated .PBWriteResponseUnit responseUnits = 2;</code>
       *
       * <pre>
       * the result of all request units
       * </pre>
       */
      public py.proto.Broadcastlog.PBWriteResponseUnit.Builder addResponseUnitsBuilder() {
        return getResponseUnitsFieldBuilder().addBuilder(
            py.proto.Broadcastlog.PBWriteResponseUnit.getDefaultInstance());
      }
      /**
       * <code>repeated .PBWriteResponseUnit responseUnits = 2;</code>
       *
       * <pre>
       * the result of all request units
       * </pre>
       */
      public py.proto.Broadcastlog.PBWriteResponseUnit.Builder addResponseUnitsBuilder(
          int index) {
        return getResponseUnitsFieldBuilder().addBuilder(
            index, py.proto.Broadcastlog.PBWriteResponseUnit.getDefaultInstance());
      }
      /**
       * <code>repeated .PBWriteResponseUnit responseUnits = 2;</code>
       *
       * <pre>
       * the result of all request units
       * </pre>
       */
      public java.util.List<py.proto.Broadcastlog.PBWriteResponseUnit.Builder> 
           getResponseUnitsBuilderList() {
        return getResponseUnitsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          py.proto.Broadcastlog.PBWriteResponseUnit, py.proto.Broadcastlog.PBWriteResponseUnit.Builder, py.proto.Broadcastlog.PBWriteResponseUnitOrBuilder> 
          getResponseUnitsFieldBuilder() {
        if (responseUnitsBuilder_ == null) {
          responseUnitsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              py.proto.Broadcastlog.PBWriteResponseUnit, py.proto.Broadcastlog.PBWriteResponseUnit.Builder, py.proto.Broadcastlog.PBWriteResponseUnitOrBuilder>(
                  responseUnits_,
                  ((bitField0_ & 0x00000002) == 0x00000002),
                  getParentForChildren(),
                  isClean());
          responseUnits_ = null;
        }
        return responseUnitsBuilder_;
      }

      private java.util.List<py.proto.Broadcastlog.PBBroadcastLogManager> logManagersToCommit_ =
        java.util.Collections.emptyList();
      private void ensureLogManagersToCommitIsMutable() {
        if (!((bitField0_ & 0x00000004) == 0x00000004)) {
          logManagersToCommit_ = new java.util.LinkedList<py.proto.Broadcastlog.PBBroadcastLogManager>(logManagersToCommit_);
          bitField0_ |= 0x00000004;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          py.proto.Broadcastlog.PBBroadcastLogManager, py.proto.Broadcastlog.PBBroadcastLogManager.Builder, py.proto.Broadcastlog.PBBroadcastLogManagerOrBuilder> logManagersToCommitBuilder_;

      /**
       * <code>repeated .PBBroadcastLogManager logManagersToCommit = 3;</code>
       *
       * <pre>
       * which contain the logs to be committed.
       * </pre>
       */
      public java.util.List<py.proto.Broadcastlog.PBBroadcastLogManager> getLogManagersToCommitList() {
        if (logManagersToCommitBuilder_ == null) {
          return java.util.Collections.unmodifiableList(logManagersToCommit_);
        } else {
          return logManagersToCommitBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .PBBroadcastLogManager logManagersToCommit = 3;</code>
       *
       * <pre>
       * which contain the logs to be committed.
       * </pre>
       */
      public int getLogManagersToCommitCount() {
        if (logManagersToCommitBuilder_ == null) {
          return logManagersToCommit_.size();
        } else {
          return logManagersToCommitBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .PBBroadcastLogManager logManagersToCommit = 3;</code>
       *
       * <pre>
       * which contain the logs to be committed.
       * </pre>
       */
      public py.proto.Broadcastlog.PBBroadcastLogManager getLogManagersToCommit(int index) {
        if (logManagersToCommitBuilder_ == null) {
          return logManagersToCommit_.get(index);
        } else {
          return logManagersToCommitBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .PBBroadcastLogManager logManagersToCommit = 3;</code>
       *
       * <pre>
       * which contain the logs to be committed.
       * </pre>
       */
      public Builder setLogManagersToCommit(
          int index, py.proto.Broadcastlog.PBBroadcastLogManager value) {
        if (logManagersToCommitBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureLogManagersToCommitIsMutable();
          logManagersToCommit_.set(index, value);
          onChanged();
        } else {
          logManagersToCommitBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .PBBroadcastLogManager logManagersToCommit = 3;</code>
       *
       * <pre>
       * which contain the logs to be committed.
       * </pre>
       */
      public Builder setLogManagersToCommit(
          int index, py.proto.Broadcastlog.PBBroadcastLogManager.Builder builderForValue) {
        if (logManagersToCommitBuilder_ == null) {
          ensureLogManagersToCommitIsMutable();
          logManagersToCommit_.set(index, builderForValue.build());
          onChanged();
        } else {
          logManagersToCommitBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .PBBroadcastLogManager logManagersToCommit = 3;</code>
       *
       * <pre>
       * which contain the logs to be committed.
       * </pre>
       */
      public Builder addLogManagersToCommit(py.proto.Broadcastlog.PBBroadcastLogManager value) {
        if (logManagersToCommitBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureLogManagersToCommitIsMutable();
          logManagersToCommit_.add(value);
          onChanged();
        } else {
          logManagersToCommitBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .PBBroadcastLogManager logManagersToCommit = 3;</code>
       *
       * <pre>
       * which contain the logs to be committed.
       * </pre>
       */
      public Builder addLogManagersToCommit(
          int index, py.proto.Broadcastlog.PBBroadcastLogManager value) {
        if (logManagersToCommitBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureLogManagersToCommitIsMutable();
          logManagersToCommit_.add(index, value);
          onChanged();
        } else {
          logManagersToCommitBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .PBBroadcastLogManager logManagersToCommit = 3;</code>
       *
       * <pre>
       * which contain the logs to be committed.
       * </pre>
       */
      public Builder addLogManagersToCommit(
          py.proto.Broadcastlog.PBBroadcastLogManager.Builder builderForValue) {
        if (logManagersToCommitBuilder_ == null) {
          ensureLogManagersToCommitIsMutable();
          logManagersToCommit_.add(builderForValue.build());
          onChanged();
        } else {
          logManagersToCommitBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .PBBroadcastLogManager logManagersToCommit = 3;</code>
       *
       * <pre>
       * which contain the logs to be committed.
       * </pre>
       */
      public Builder addLogManagersToCommit(
          int index, py.proto.Broadcastlog.PBBroadcastLogManager.Builder builderForValue) {
        if (logManagersToCommitBuilder_ == null) {
          ensureLogManagersToCommitIsMutable();
          logManagersToCommit_.add(index, builderForValue.build());
          onChanged();
        } else {
          logManagersToCommitBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .PBBroadcastLogManager logManagersToCommit = 3;</code>
       *
       * <pre>
       * which contain the logs to be committed.
       * </pre>
       */
      public Builder addAllLogManagersToCommit(
          java.lang.Iterable<? extends py.proto.Broadcastlog.PBBroadcastLogManager> values) {
        if (logManagersToCommitBuilder_ == null) {
          ensureLogManagersToCommitIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, logManagersToCommit_);
          onChanged();
        } else {
          logManagersToCommitBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .PBBroadcastLogManager logManagersToCommit = 3;</code>
       *
       * <pre>
       * which contain the logs to be committed.
       * </pre>
       */
      public Builder clearLogManagersToCommit() {
        if (logManagersToCommitBuilder_ == null) {
          logManagersToCommit_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000004);
          onChanged();
        } else {
          logManagersToCommitBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .PBBroadcastLogManager logManagersToCommit = 3;</code>
       *
       * <pre>
       * which contain the logs to be committed.
       * </pre>
       */
      public Builder removeLogManagersToCommit(int index) {
        if (logManagersToCommitBuilder_ == null) {
          ensureLogManagersToCommitIsMutable();
          logManagersToCommit_.remove(index);
          onChanged();
        } else {
          logManagersToCommitBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .PBBroadcastLogManager logManagersToCommit = 3;</code>
       *
       * <pre>
       * which contain the logs to be committed.
       * </pre>
       */
      public py.proto.Broadcastlog.PBBroadcastLogManager.Builder getLogManagersToCommitBuilder(
          int index) {
        return getLogManagersToCommitFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .PBBroadcastLogManager logManagersToCommit = 3;</code>
       *
       * <pre>
       * which contain the logs to be committed.
       * </pre>
       */
      public py.proto.Broadcastlog.PBBroadcastLogManagerOrBuilder getLogManagersToCommitOrBuilder(
          int index) {
        if (logManagersToCommitBuilder_ == null) {
          return logManagersToCommit_.get(index);  } else {
          return logManagersToCommitBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .PBBroadcastLogManager logManagersToCommit = 3;</code>
       *
       * <pre>
       * which contain the logs to be committed.
       * </pre>
       */
      public java.util.List<? extends py.proto.Broadcastlog.PBBroadcastLogManagerOrBuilder> 
           getLogManagersToCommitOrBuilderList() {
        if (logManagersToCommitBuilder_ != null) {
          return logManagersToCommitBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(logManagersToCommit_);
        }
      }
      /**
       * <code>repeated .PBBroadcastLogManager logManagersToCommit = 3;</code>
       *
       * <pre>
       * which contain the logs to be committed.
       * </pre>
       */
      public py.proto.Broadcastlog.PBBroadcastLogManager.Builder addLogManagersToCommitBuilder() {
        return getLogManagersToCommitFieldBuilder().addBuilder(
            py.proto.Broadcastlog.PBBroadcastLogManager.getDefaultInstance());
      }
      /**
       * <code>repeated .PBBroadcastLogManager logManagersToCommit = 3;</code>
       *
       * <pre>
       * which contain the logs to be committed.
       * </pre>
       */
      public py.proto.Broadcastlog.PBBroadcastLogManager.Builder addLogManagersToCommitBuilder(
          int index) {
        return getLogManagersToCommitFieldBuilder().addBuilder(
            index, py.proto.Broadcastlog.PBBroadcastLogManager.getDefaultInstance());
      }
      /**
       * <code>repeated .PBBroadcastLogManager logManagersToCommit = 3;</code>
       *
       * <pre>
       * which contain the logs to be committed.
       * </pre>
       */
      public java.util.List<py.proto.Broadcastlog.PBBroadcastLogManager.Builder> 
           getLogManagersToCommitBuilderList() {
        return getLogManagersToCommitFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          py.proto.Broadcastlog.PBBroadcastLogManager, py.proto.Broadcastlog.PBBroadcastLogManager.Builder, py.proto.Broadcastlog.PBBroadcastLogManagerOrBuilder> 
          getLogManagersToCommitFieldBuilder() {
        if (logManagersToCommitBuilder_ == null) {
          logManagersToCommitBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              py.proto.Broadcastlog.PBBroadcastLogManager, py.proto.Broadcastlog.PBBroadcastLogManager.Builder, py.proto.Broadcastlog.PBBroadcastLogManagerOrBuilder>(
                  logManagersToCommit_,
                  ((bitField0_ & 0x00000004) == 0x00000004),
                  getParentForChildren(),
                  isClean());
          logManagersToCommit_ = null;
        }
        return logManagersToCommitBuilder_;
      }

      private py.proto.Broadcastlog.PBMembership membership_ = py.proto.Broadcastlog.PBMembership.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          py.proto.Broadcastlog.PBMembership, py.proto.Broadcastlog.PBMembership.Builder, py.proto.Broadcastlog.PBMembershipOrBuilder> membershipBuilder_;
      /**
       * <code>optional .PBMembership membership = 4;</code>
       *
       * <pre>
       * if primary has found the membership changed, the variable will be filled.
       * </pre>
       */
      public boolean hasMembership() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * <code>optional .PBMembership membership = 4;</code>
       *
       * <pre>
       * if primary has found the membership changed, the variable will be filled.
       * </pre>
       */
      public py.proto.Broadcastlog.PBMembership getMembership() {
        if (membershipBuilder_ == null) {
          return membership_;
        } else {
          return membershipBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .PBMembership membership = 4;</code>
       *
       * <pre>
       * if primary has found the membership changed, the variable will be filled.
       * </pre>
       */
      public Builder setMembership(py.proto.Broadcastlog.PBMembership value) {
        if (membershipBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          membership_ = value;
          onChanged();
        } else {
          membershipBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       * <code>optional .PBMembership membership = 4;</code>
       *
       * <pre>
       * if primary has found the membership changed, the variable will be filled.
       * </pre>
       */
      public Builder setMembership(
          py.proto.Broadcastlog.PBMembership.Builder builderForValue) {
        if (membershipBuilder_ == null) {
          membership_ = builderForValue.build();
          onChanged();
        } else {
          membershipBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       * <code>optional .PBMembership membership = 4;</code>
       *
       * <pre>
       * if primary has found the membership changed, the variable will be filled.
       * </pre>
       */
      public Builder mergeMembership(py.proto.Broadcastlog.PBMembership value) {
        if (membershipBuilder_ == null) {
          if (((bitField0_ & 0x00000008) == 0x00000008) &&
              membership_ != py.proto.Broadcastlog.PBMembership.getDefaultInstance()) {
            membership_ =
              py.proto.Broadcastlog.PBMembership.newBuilder(membership_).mergeFrom(value).buildPartial();
          } else {
            membership_ = value;
          }
          onChanged();
        } else {
          membershipBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       * <code>optional .PBMembership membership = 4;</code>
       *
       * <pre>
       * if primary has found the membership changed, the variable will be filled.
       * </pre>
       */
      public Builder clearMembership() {
        if (membershipBuilder_ == null) {
          membership_ = py.proto.Broadcastlog.PBMembership.getDefaultInstance();
          onChanged();
        } else {
          membershipBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }
      /**
       * <code>optional .PBMembership membership = 4;</code>
       *
       * <pre>
       * if primary has found the membership changed, the variable will be filled.
       * </pre>
       */
      public py.proto.Broadcastlog.PBMembership.Builder getMembershipBuilder() {
        bitField0_ |= 0x00000008;
        onChanged();
        return getMembershipFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .PBMembership membership = 4;</code>
       *
       * <pre>
       * if primary has found the membership changed, the variable will be filled.
       * </pre>
       */
      public py.proto.Broadcastlog.PBMembershipOrBuilder getMembershipOrBuilder() {
        if (membershipBuilder_ != null) {
          return membershipBuilder_.getMessageOrBuilder();
        } else {
          return membership_;
        }
      }
      /**
       * <code>optional .PBMembership membership = 4;</code>
       *
       * <pre>
       * if primary has found the membership changed, the variable will be filled.
       * </pre>
       */
      private com.google.protobuf.SingleFieldBuilder<
          py.proto.Broadcastlog.PBMembership, py.proto.Broadcastlog.PBMembership.Builder, py.proto.Broadcastlog.PBMembershipOrBuilder> 
          getMembershipFieldBuilder() {
        if (membershipBuilder_ == null) {
          membershipBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              py.proto.Broadcastlog.PBMembership, py.proto.Broadcastlog.PBMembership.Builder, py.proto.Broadcastlog.PBMembershipOrBuilder>(
                  getMembership(),
                  getParentForChildren(),
                  isClean());
          membership_ = null;
        }
        return membershipBuilder_;
      }

      private java.lang.Object snapshotJson_ = "";
      /**
       * <code>optional string snapshotJson = 5;</code>
       *
       * <pre>
       * string of snapshot in data node
       * </pre>
       */
      public boolean hasSnapshotJson() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * <code>optional string snapshotJson = 5;</code>
       *
       * <pre>
       * string of snapshot in data node
       * </pre>
       */
      public java.lang.String getSnapshotJson() {
        java.lang.Object ref = snapshotJson_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            snapshotJson_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string snapshotJson = 5;</code>
       *
       * <pre>
       * string of snapshot in data node
       * </pre>
       */
      public com.google.protobuf.ByteString
          getSnapshotJsonBytes() {
        java.lang.Object ref = snapshotJson_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          snapshotJson_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string snapshotJson = 5;</code>
       *
       * <pre>
       * string of snapshot in data node
       * </pre>
       */
      public Builder setSnapshotJson(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000010;
        snapshotJson_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string snapshotJson = 5;</code>
       *
       * <pre>
       * string of snapshot in data node
       * </pre>
       */
      public Builder clearSnapshotJson() {
        bitField0_ = (bitField0_ & ~0x00000010);
        snapshotJson_ = getDefaultInstance().getSnapshotJson();
        onChanged();
        return this;
      }
      /**
       * <code>optional string snapshotJson = 5;</code>
       *
       * <pre>
       * string of snapshot in data node
       * </pre>
       */
      public Builder setSnapshotJsonBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000010;
        snapshotJson_ = value;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:PBWriteResponse)
    }

    static {
      defaultInstance = new PBWriteResponse(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:PBWriteResponse)
  }

  public interface PBReadRequestUnitOrBuilder extends
      // @@protoc_insertion_point(interface_extends:PBReadRequestUnit)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>required int64 offset = 1;</code>
     */
    boolean hasOffset();
    /**
     * <code>required int64 offset = 1;</code>
     */
    long getOffset();

    /**
     * <code>required int32 length = 2;</code>
     */
    boolean hasLength();
    /**
     * <code>required int32 length = 2;</code>
     */
    int getLength();
  }
  /**
   * Protobuf type {@code PBReadRequestUnit}
   *
   * <pre>
   *************************read begin ****************
   * </pre>
   */
  public static final class PBReadRequestUnit extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:PBReadRequestUnit)
      PBReadRequestUnitOrBuilder {
    // Use PBReadRequestUnit.newBuilder() to construct.
    private PBReadRequestUnit(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private PBReadRequestUnit(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final PBReadRequestUnit defaultInstance;
    public static PBReadRequestUnit getDefaultInstance() {
      return defaultInstance;
    }

    public PBReadRequestUnit getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private PBReadRequestUnit(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              offset_ = input.readInt64();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              length_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return py.proto.Broadcastlog.internal_static_PBReadRequestUnit_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return py.proto.Broadcastlog.internal_static_PBReadRequestUnit_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              py.proto.Broadcastlog.PBReadRequestUnit.class, py.proto.Broadcastlog.PBReadRequestUnit.Builder.class);
    }

    public static com.google.protobuf.Parser<PBReadRequestUnit> PARSER =
        new com.google.protobuf.AbstractParser<PBReadRequestUnit>() {
      public PBReadRequestUnit parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new PBReadRequestUnit(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser<PBReadRequestUnit> getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int OFFSET_FIELD_NUMBER = 1;
    private long offset_;
    /**
     * <code>required int64 offset = 1;</code>
     */
    public boolean hasOffset() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required int64 offset = 1;</code>
     */
    public long getOffset() {
      return offset_;
    }

    public static final int LENGTH_FIELD_NUMBER = 2;
    private int length_;
    /**
     * <code>required int32 length = 2;</code>
     */
    public boolean hasLength() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required int32 length = 2;</code>
     */
    public int getLength() {
      return length_;
    }

    private void initFields() {
      offset_ = 0L;
      length_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasOffset()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasLength()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt64(1, offset_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, length_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, offset_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, length_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static py.proto.Broadcastlog.PBReadRequestUnit parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static py.proto.Broadcastlog.PBReadRequestUnit parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBReadRequestUnit parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static py.proto.Broadcastlog.PBReadRequestUnit parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBReadRequestUnit parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static py.proto.Broadcastlog.PBReadRequestUnit parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBReadRequestUnit parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static py.proto.Broadcastlog.PBReadRequestUnit parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBReadRequestUnit parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static py.proto.Broadcastlog.PBReadRequestUnit parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(py.proto.Broadcastlog.PBReadRequestUnit prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code PBReadRequestUnit}
     *
     * <pre>
     *************************read begin ****************
     * </pre>
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:PBReadRequestUnit)
        py.proto.Broadcastlog.PBReadRequestUnitOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return py.proto.Broadcastlog.internal_static_PBReadRequestUnit_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return py.proto.Broadcastlog.internal_static_PBReadRequestUnit_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                py.proto.Broadcastlog.PBReadRequestUnit.class, py.proto.Broadcastlog.PBReadRequestUnit.Builder.class);
      }

      // Construct using py.proto.Broadcastlog.PBReadRequestUnit.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        offset_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000001);
        length_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return py.proto.Broadcastlog.internal_static_PBReadRequestUnit_descriptor;
      }

      public py.proto.Broadcastlog.PBReadRequestUnit getDefaultInstanceForType() {
        return py.proto.Broadcastlog.PBReadRequestUnit.getDefaultInstance();
      }

      public py.proto.Broadcastlog.PBReadRequestUnit build() {
        py.proto.Broadcastlog.PBReadRequestUnit result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public py.proto.Broadcastlog.PBReadRequestUnit buildPartial() {
        py.proto.Broadcastlog.PBReadRequestUnit result = new py.proto.Broadcastlog.PBReadRequestUnit(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.offset_ = offset_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.length_ = length_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof py.proto.Broadcastlog.PBReadRequestUnit) {
          return mergeFrom((py.proto.Broadcastlog.PBReadRequestUnit)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(py.proto.Broadcastlog.PBReadRequestUnit other) {
        if (other == py.proto.Broadcastlog.PBReadRequestUnit.getDefaultInstance()) return this;
        if (other.hasOffset()) {
          setOffset(other.getOffset());
        }
        if (other.hasLength()) {
          setLength(other.getLength());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasOffset()) {
          
          return false;
        }
        if (!hasLength()) {
          
          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        py.proto.Broadcastlog.PBReadRequestUnit parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (py.proto.Broadcastlog.PBReadRequestUnit) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private long offset_ ;
      /**
       * <code>required int64 offset = 1;</code>
       */
      public boolean hasOffset() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required int64 offset = 1;</code>
       */
      public long getOffset() {
        return offset_;
      }
      /**
       * <code>required int64 offset = 1;</code>
       */
      public Builder setOffset(long value) {
        bitField0_ |= 0x00000001;
        offset_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int64 offset = 1;</code>
       */
      public Builder clearOffset() {
        bitField0_ = (bitField0_ & ~0x00000001);
        offset_ = 0L;
        onChanged();
        return this;
      }

      private int length_ ;
      /**
       * <code>required int32 length = 2;</code>
       */
      public boolean hasLength() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required int32 length = 2;</code>
       */
      public int getLength() {
        return length_;
      }
      /**
       * <code>required int32 length = 2;</code>
       */
      public Builder setLength(int value) {
        bitField0_ |= 0x00000002;
        length_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int32 length = 2;</code>
       */
      public Builder clearLength() {
        bitField0_ = (bitField0_ & ~0x00000002);
        length_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:PBReadRequestUnit)
    }

    static {
      defaultInstance = new PBReadRequestUnit(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:PBReadRequestUnit)
  }

  public interface PBReadRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:PBReadRequest)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>required int64 requestId = 1;</code>
     */
    boolean hasRequestId();
    /**
     * <code>required int64 requestId = 1;</code>
     */
    long getRequestId();

    /**
     * <code>required int64 volumeId = 2;</code>
     */
    boolean hasVolumeId();
    /**
     * <code>required int64 volumeId = 2;</code>
     */
    long getVolumeId();

    /**
     * <code>required int32 segIndex = 3;</code>
     */
    boolean hasSegIndex();
    /**
     * <code>required int32 segIndex = 3;</code>
     */
    int getSegIndex();

    /**
     * <code>required int32 failTimes = 4;</code>
     */
    boolean hasFailTimes();
    /**
     * <code>required int32 failTimes = 4;</code>
     */
    int getFailTimes();

    /**
     * <code>required int32 snapshotId = 5;</code>
     */
    boolean hasSnapshotId();
    /**
     * <code>required int32 snapshotId = 5;</code>
     */
    int getSnapshotId();

    /**
     * <code>required .ReadCause readCause = 6;</code>
     *
     * <pre>
     * if primary want to correct its corrupted page or the coordinator reads from two secondaries, it will be true.
     * </pre>
     */
    boolean hasReadCause();
    /**
     * <code>required .ReadCause readCause = 6;</code>
     *
     * <pre>
     * if primary want to correct its corrupted page or the coordinator reads from two secondaries, it will be true.
     * </pre>
     */
    py.proto.Broadcastlog.ReadCause getReadCause();

    /**
     * <code>required .PBMembership membership = 7;</code>
     */
    boolean hasMembership();
    /**
     * <code>required .PBMembership membership = 7;</code>
     */
    py.proto.Broadcastlog.PBMembership getMembership();
    /**
     * <code>required .PBMembership membership = 7;</code>
     */
    py.proto.Broadcastlog.PBMembershipOrBuilder getMembershipOrBuilder();

    /**
     * <code>repeated .PBReadRequestUnit requestUnits = 8;</code>
     */
    java.util.List<py.proto.Broadcastlog.PBReadRequestUnit> 
        getRequestUnitsList();
    /**
     * <code>repeated .PBReadRequestUnit requestUnits = 8;</code>
     */
    py.proto.Broadcastlog.PBReadRequestUnit getRequestUnits(int index);
    /**
     * <code>repeated .PBReadRequestUnit requestUnits = 8;</code>
     */
    int getRequestUnitsCount();
    /**
     * <code>repeated .PBReadRequestUnit requestUnits = 8;</code>
     */
    java.util.List<? extends py.proto.Broadcastlog.PBReadRequestUnitOrBuilder> 
        getRequestUnitsOrBuilderList();
    /**
     * <code>repeated .PBReadRequestUnit requestUnits = 8;</code>
     */
    py.proto.Broadcastlog.PBReadRequestUnitOrBuilder getRequestUnitsOrBuilder(
        int index);

    /**
     * <code>repeated int64 logsToCommit = 9;</code>
     */
    java.util.List<java.lang.Long> getLogsToCommitList();
    /**
     * <code>repeated int64 logsToCommit = 9;</code>
     */
    int getLogsToCommitCount();
    /**
     * <code>repeated int64 logsToCommit = 9;</code>
     */
    long getLogsToCommit(int index);
  }
  /**
   * Protobuf type {@code PBReadRequest}
   */
  public static final class PBReadRequest extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:PBReadRequest)
      PBReadRequestOrBuilder {
    // Use PBReadRequest.newBuilder() to construct.
    private PBReadRequest(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private PBReadRequest(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final PBReadRequest defaultInstance;
    public static PBReadRequest getDefaultInstance() {
      return defaultInstance;
    }

    public PBReadRequest getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private PBReadRequest(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              requestId_ = input.readInt64();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              volumeId_ = input.readInt64();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              segIndex_ = input.readInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              failTimes_ = input.readInt32();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              snapshotId_ = input.readInt32();
              break;
            }
            case 48: {
              int rawValue = input.readEnum();
              py.proto.Broadcastlog.ReadCause value = py.proto.Broadcastlog.ReadCause.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(6, rawValue);
              } else {
                bitField0_ |= 0x00000020;
                readCause_ = value;
              }
              break;
            }
            case 58: {
              py.proto.Broadcastlog.PBMembership.Builder subBuilder = null;
              if (((bitField0_ & 0x00000040) == 0x00000040)) {
                subBuilder = membership_.toBuilder();
              }
              membership_ = input.readMessage(py.proto.Broadcastlog.PBMembership.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(membership_);
                membership_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000040;
              break;
            }
            case 66: {
              if (!((mutable_bitField0_ & 0x00000080) == 0x00000080)) {
                requestUnits_ = new java.util.LinkedList<py.proto.Broadcastlog.PBReadRequestUnit>();
                mutable_bitField0_ |= 0x00000080;
              }
              requestUnits_.add(input.readMessage(py.proto.Broadcastlog.PBReadRequestUnit.PARSER, extensionRegistry));
              break;
            }
            case 72: {
              if (!((mutable_bitField0_ & 0x00000100) == 0x00000100)) {
                logsToCommit_ = new java.util.LinkedList<java.lang.Long>();
                mutable_bitField0_ |= 0x00000100;
              }
              logsToCommit_.add(input.readInt64());
              break;
            }
            case 74: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              if (!((mutable_bitField0_ & 0x00000100) == 0x00000100) && input.getBytesUntilLimit() > 0) {
                logsToCommit_ = new java.util.LinkedList<java.lang.Long>();
                mutable_bitField0_ |= 0x00000100;
              }
              while (input.getBytesUntilLimit() > 0) {
                logsToCommit_.add(input.readInt64());
              }
              input.popLimit(limit);
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000080) == 0x00000080)) {
          requestUnits_ = java.util.Collections.unmodifiableList(requestUnits_);
        }
        if (((mutable_bitField0_ & 0x00000100) == 0x00000100)) {
          logsToCommit_ = java.util.Collections.unmodifiableList(logsToCommit_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return py.proto.Broadcastlog.internal_static_PBReadRequest_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return py.proto.Broadcastlog.internal_static_PBReadRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              py.proto.Broadcastlog.PBReadRequest.class, py.proto.Broadcastlog.PBReadRequest.Builder.class);
    }

    public static com.google.protobuf.Parser<PBReadRequest> PARSER =
        new com.google.protobuf.AbstractParser<PBReadRequest>() {
      public PBReadRequest parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new PBReadRequest(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser<PBReadRequest> getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int REQUESTID_FIELD_NUMBER = 1;
    private long requestId_;
    /**
     * <code>required int64 requestId = 1;</code>
     */
    public boolean hasRequestId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required int64 requestId = 1;</code>
     */
    public long getRequestId() {
      return requestId_;
    }

    public static final int VOLUMEID_FIELD_NUMBER = 2;
    private long volumeId_;
    /**
     * <code>required int64 volumeId = 2;</code>
     */
    public boolean hasVolumeId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required int64 volumeId = 2;</code>
     */
    public long getVolumeId() {
      return volumeId_;
    }

    public static final int SEGINDEX_FIELD_NUMBER = 3;
    private int segIndex_;
    /**
     * <code>required int32 segIndex = 3;</code>
     */
    public boolean hasSegIndex() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>required int32 segIndex = 3;</code>
     */
    public int getSegIndex() {
      return segIndex_;
    }

    public static final int FAILTIMES_FIELD_NUMBER = 4;
    private int failTimes_;
    /**
     * <code>required int32 failTimes = 4;</code>
     */
    public boolean hasFailTimes() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * <code>required int32 failTimes = 4;</code>
     */
    public int getFailTimes() {
      return failTimes_;
    }

    public static final int SNAPSHOTID_FIELD_NUMBER = 5;
    private int snapshotId_;
    /**
     * <code>required int32 snapshotId = 5;</code>
     */
    public boolean hasSnapshotId() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * <code>required int32 snapshotId = 5;</code>
     */
    public int getSnapshotId() {
      return snapshotId_;
    }

    public static final int READCAUSE_FIELD_NUMBER = 6;
    private py.proto.Broadcastlog.ReadCause readCause_;
    /**
     * <code>required .ReadCause readCause = 6;</code>
     *
     * <pre>
     * if primary want to correct its corrupted page or the coordinator reads from two secondaries, it will be true.
     * </pre>
     */
    public boolean hasReadCause() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     * <code>required .ReadCause readCause = 6;</code>
     *
     * <pre>
     * if primary want to correct its corrupted page or the coordinator reads from two secondaries, it will be true.
     * </pre>
     */
    public py.proto.Broadcastlog.ReadCause getReadCause() {
      return readCause_;
    }

    public static final int MEMBERSHIP_FIELD_NUMBER = 7;
    private py.proto.Broadcastlog.PBMembership membership_;
    /**
     * <code>required .PBMembership membership = 7;</code>
     */
    public boolean hasMembership() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    /**
     * <code>required .PBMembership membership = 7;</code>
     */
    public py.proto.Broadcastlog.PBMembership getMembership() {
      return membership_;
    }
    /**
     * <code>required .PBMembership membership = 7;</code>
     */
    public py.proto.Broadcastlog.PBMembershipOrBuilder getMembershipOrBuilder() {
      return membership_;
    }

    public static final int REQUESTUNITS_FIELD_NUMBER = 8;
    private java.util.List<py.proto.Broadcastlog.PBReadRequestUnit> requestUnits_;
    /**
     * <code>repeated .PBReadRequestUnit requestUnits = 8;</code>
     */
    public java.util.List<py.proto.Broadcastlog.PBReadRequestUnit> getRequestUnitsList() {
      return requestUnits_;
    }
    /**
     * <code>repeated .PBReadRequestUnit requestUnits = 8;</code>
     */
    public java.util.List<? extends py.proto.Broadcastlog.PBReadRequestUnitOrBuilder> 
        getRequestUnitsOrBuilderList() {
      return requestUnits_;
    }
    /**
     * <code>repeated .PBReadRequestUnit requestUnits = 8;</code>
     */
    public int getRequestUnitsCount() {
      return requestUnits_.size();
    }
    /**
     * <code>repeated .PBReadRequestUnit requestUnits = 8;</code>
     */
    public py.proto.Broadcastlog.PBReadRequestUnit getRequestUnits(int index) {
      return requestUnits_.get(index);
    }
    /**
     * <code>repeated .PBReadRequestUnit requestUnits = 8;</code>
     */
    public py.proto.Broadcastlog.PBReadRequestUnitOrBuilder getRequestUnitsOrBuilder(
        int index) {
      return requestUnits_.get(index);
    }

    public static final int LOGSTOCOMMIT_FIELD_NUMBER = 9;
    private java.util.List<java.lang.Long> logsToCommit_;
    /**
     * <code>repeated int64 logsToCommit = 9;</code>
     */
    public java.util.List<java.lang.Long>
        getLogsToCommitList() {
      return logsToCommit_;
    }
    /**
     * <code>repeated int64 logsToCommit = 9;</code>
     */
    public int getLogsToCommitCount() {
      return logsToCommit_.size();
    }
    /**
     * <code>repeated int64 logsToCommit = 9;</code>
     */
    public long getLogsToCommit(int index) {
      return logsToCommit_.get(index);
    }

    private void initFields() {
      requestId_ = 0L;
      volumeId_ = 0L;
      segIndex_ = 0;
      failTimes_ = 0;
      snapshotId_ = 0;
      readCause_ = py.proto.Broadcastlog.ReadCause.fetch;
      membership_ = py.proto.Broadcastlog.PBMembership.getDefaultInstance();
      requestUnits_ = java.util.Collections.emptyList();
      logsToCommit_ = java.util.Collections.emptyList();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasRequestId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasVolumeId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasSegIndex()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasFailTimes()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasSnapshotId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasReadCause()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasMembership()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getMembership().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      for (int i = 0; i < getRequestUnitsCount(); i++) {
        if (!getRequestUnits(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt64(1, requestId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt64(2, volumeId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt32(3, segIndex_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeInt32(4, failTimes_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeInt32(5, snapshotId_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeEnum(6, readCause_.getNumber());
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        output.writeMessage(7, membership_);
      }
      for (int i = 0; i < requestUnits_.size(); i++) {
        output.writeMessage(8, requestUnits_.get(i));
      }
      for (int i = 0; i < logsToCommit_.size(); i++) {
        output.writeInt64(9, logsToCommit_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, requestId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(2, volumeId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, segIndex_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, failTimes_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(5, snapshotId_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(6, readCause_.getNumber());
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(7, membership_);
      }
      for (int i = 0; i < requestUnits_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(8, requestUnits_.get(i));
      }
      {
        int dataSize = 0;
        for (int i = 0; i < logsToCommit_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt64SizeNoTag(logsToCommit_.get(i));
        }
        size += dataSize;
        size += 1 * getLogsToCommitList().size();
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static py.proto.Broadcastlog.PBReadRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static py.proto.Broadcastlog.PBReadRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBReadRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static py.proto.Broadcastlog.PBReadRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBReadRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static py.proto.Broadcastlog.PBReadRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBReadRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static py.proto.Broadcastlog.PBReadRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBReadRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static py.proto.Broadcastlog.PBReadRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(py.proto.Broadcastlog.PBReadRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code PBReadRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:PBReadRequest)
        py.proto.Broadcastlog.PBReadRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return py.proto.Broadcastlog.internal_static_PBReadRequest_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return py.proto.Broadcastlog.internal_static_PBReadRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                py.proto.Broadcastlog.PBReadRequest.class, py.proto.Broadcastlog.PBReadRequest.Builder.class);
      }

      // Construct using py.proto.Broadcastlog.PBReadRequest.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getMembershipFieldBuilder();
          getRequestUnitsFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        requestId_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000001);
        volumeId_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000002);
        segIndex_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        failTimes_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        snapshotId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000010);
        readCause_ = py.proto.Broadcastlog.ReadCause.fetch;
        bitField0_ = (bitField0_ & ~0x00000020);
        if (membershipBuilder_ == null) {
          membership_ = py.proto.Broadcastlog.PBMembership.getDefaultInstance();
        } else {
          membershipBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000040);
        if (requestUnitsBuilder_ == null) {
          requestUnits_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000080);
        } else {
          requestUnitsBuilder_.clear();
        }
        logsToCommit_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000100);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return py.proto.Broadcastlog.internal_static_PBReadRequest_descriptor;
      }

      public py.proto.Broadcastlog.PBReadRequest getDefaultInstanceForType() {
        return py.proto.Broadcastlog.PBReadRequest.getDefaultInstance();
      }

      public py.proto.Broadcastlog.PBReadRequest build() {
        py.proto.Broadcastlog.PBReadRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public py.proto.Broadcastlog.PBReadRequest buildPartial() {
        py.proto.Broadcastlog.PBReadRequest result = new py.proto.Broadcastlog.PBReadRequest(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.requestId_ = requestId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.volumeId_ = volumeId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.segIndex_ = segIndex_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.failTimes_ = failTimes_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.snapshotId_ = snapshotId_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        result.readCause_ = readCause_;
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000040;
        }
        if (membershipBuilder_ == null) {
          result.membership_ = membership_;
        } else {
          result.membership_ = membershipBuilder_.build();
        }
        if (requestUnitsBuilder_ == null) {
          if (((bitField0_ & 0x00000080) == 0x00000080)) {
            requestUnits_ = java.util.Collections.unmodifiableList(requestUnits_);
            bitField0_ = (bitField0_ & ~0x00000080);
          }
          result.requestUnits_ = requestUnits_;
        } else {
          result.requestUnits_ = requestUnitsBuilder_.build();
        }
        if (((bitField0_ & 0x00000100) == 0x00000100)) {
          logsToCommit_ = java.util.Collections.unmodifiableList(logsToCommit_);
          bitField0_ = (bitField0_ & ~0x00000100);
        }
        result.logsToCommit_ = logsToCommit_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof py.proto.Broadcastlog.PBReadRequest) {
          return mergeFrom((py.proto.Broadcastlog.PBReadRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(py.proto.Broadcastlog.PBReadRequest other) {
        if (other == py.proto.Broadcastlog.PBReadRequest.getDefaultInstance()) return this;
        if (other.hasRequestId()) {
          setRequestId(other.getRequestId());
        }
        if (other.hasVolumeId()) {
          setVolumeId(other.getVolumeId());
        }
        if (other.hasSegIndex()) {
          setSegIndex(other.getSegIndex());
        }
        if (other.hasFailTimes()) {
          setFailTimes(other.getFailTimes());
        }
        if (other.hasSnapshotId()) {
          setSnapshotId(other.getSnapshotId());
        }
        if (other.hasReadCause()) {
          setReadCause(other.getReadCause());
        }
        if (other.hasMembership()) {
          mergeMembership(other.getMembership());
        }
        if (requestUnitsBuilder_ == null) {
          if (!other.requestUnits_.isEmpty()) {
            if (requestUnits_.isEmpty()) {
              requestUnits_ = other.requestUnits_;
              bitField0_ = (bitField0_ & ~0x00000080);
            } else {
              ensureRequestUnitsIsMutable();
              requestUnits_.addAll(other.requestUnits_);
            }
            onChanged();
          }
        } else {
          if (!other.requestUnits_.isEmpty()) {
            if (requestUnitsBuilder_.isEmpty()) {
              requestUnitsBuilder_.dispose();
              requestUnitsBuilder_ = null;
              requestUnits_ = other.requestUnits_;
              bitField0_ = (bitField0_ & ~0x00000080);
              requestUnitsBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getRequestUnitsFieldBuilder() : null;
            } else {
              requestUnitsBuilder_.addAllMessages(other.requestUnits_);
            }
          }
        }
        if (!other.logsToCommit_.isEmpty()) {
          if (logsToCommit_.isEmpty()) {
            logsToCommit_ = other.logsToCommit_;
            bitField0_ = (bitField0_ & ~0x00000100);
          } else {
            ensureLogsToCommitIsMutable();
            logsToCommit_.addAll(other.logsToCommit_);
          }
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasRequestId()) {
          
          return false;
        }
        if (!hasVolumeId()) {
          
          return false;
        }
        if (!hasSegIndex()) {
          
          return false;
        }
        if (!hasFailTimes()) {
          
          return false;
        }
        if (!hasSnapshotId()) {
          
          return false;
        }
        if (!hasReadCause()) {
          
          return false;
        }
        if (!hasMembership()) {
          
          return false;
        }
        if (!getMembership().isInitialized()) {
          
          return false;
        }
        for (int i = 0; i < getRequestUnitsCount(); i++) {
          if (!getRequestUnits(i).isInitialized()) {
            
            return false;
          }
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        py.proto.Broadcastlog.PBReadRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (py.proto.Broadcastlog.PBReadRequest) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private long requestId_ ;
      /**
       * <code>required int64 requestId = 1;</code>
       */
      public boolean hasRequestId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required int64 requestId = 1;</code>
       */
      public long getRequestId() {
        return requestId_;
      }
      /**
       * <code>required int64 requestId = 1;</code>
       */
      public Builder setRequestId(long value) {
        bitField0_ |= 0x00000001;
        requestId_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int64 requestId = 1;</code>
       */
      public Builder clearRequestId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        requestId_ = 0L;
        onChanged();
        return this;
      }

      private long volumeId_ ;
      /**
       * <code>required int64 volumeId = 2;</code>
       */
      public boolean hasVolumeId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required int64 volumeId = 2;</code>
       */
      public long getVolumeId() {
        return volumeId_;
      }
      /**
       * <code>required int64 volumeId = 2;</code>
       */
      public Builder setVolumeId(long value) {
        bitField0_ |= 0x00000002;
        volumeId_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int64 volumeId = 2;</code>
       */
      public Builder clearVolumeId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        volumeId_ = 0L;
        onChanged();
        return this;
      }

      private int segIndex_ ;
      /**
       * <code>required int32 segIndex = 3;</code>
       */
      public boolean hasSegIndex() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>required int32 segIndex = 3;</code>
       */
      public int getSegIndex() {
        return segIndex_;
      }
      /**
       * <code>required int32 segIndex = 3;</code>
       */
      public Builder setSegIndex(int value) {
        bitField0_ |= 0x00000004;
        segIndex_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int32 segIndex = 3;</code>
       */
      public Builder clearSegIndex() {
        bitField0_ = (bitField0_ & ~0x00000004);
        segIndex_ = 0;
        onChanged();
        return this;
      }

      private int failTimes_ ;
      /**
       * <code>required int32 failTimes = 4;</code>
       */
      public boolean hasFailTimes() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * <code>required int32 failTimes = 4;</code>
       */
      public int getFailTimes() {
        return failTimes_;
      }
      /**
       * <code>required int32 failTimes = 4;</code>
       */
      public Builder setFailTimes(int value) {
        bitField0_ |= 0x00000008;
        failTimes_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int32 failTimes = 4;</code>
       */
      public Builder clearFailTimes() {
        bitField0_ = (bitField0_ & ~0x00000008);
        failTimes_ = 0;
        onChanged();
        return this;
      }

      private int snapshotId_ ;
      /**
       * <code>required int32 snapshotId = 5;</code>
       */
      public boolean hasSnapshotId() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * <code>required int32 snapshotId = 5;</code>
       */
      public int getSnapshotId() {
        return snapshotId_;
      }
      /**
       * <code>required int32 snapshotId = 5;</code>
       */
      public Builder setSnapshotId(int value) {
        bitField0_ |= 0x00000010;
        snapshotId_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int32 snapshotId = 5;</code>
       */
      public Builder clearSnapshotId() {
        bitField0_ = (bitField0_ & ~0x00000010);
        snapshotId_ = 0;
        onChanged();
        return this;
      }

      private py.proto.Broadcastlog.ReadCause readCause_ = py.proto.Broadcastlog.ReadCause.fetch;
      /**
       * <code>required .ReadCause readCause = 6;</code>
       *
       * <pre>
       * if primary want to correct its corrupted page or the coordinator reads from two secondaries, it will be true.
       * </pre>
       */
      public boolean hasReadCause() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * <code>required .ReadCause readCause = 6;</code>
       *
       * <pre>
       * if primary want to correct its corrupted page or the coordinator reads from two secondaries, it will be true.
       * </pre>
       */
      public py.proto.Broadcastlog.ReadCause getReadCause() {
        return readCause_;
      }
      /**
       * <code>required .ReadCause readCause = 6;</code>
       *
       * <pre>
       * if primary want to correct its corrupted page or the coordinator reads from two secondaries, it will be true.
       * </pre>
       */
      public Builder setReadCause(py.proto.Broadcastlog.ReadCause value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000020;
        readCause_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required .ReadCause readCause = 6;</code>
       *
       * <pre>
       * if primary want to correct its corrupted page or the coordinator reads from two secondaries, it will be true.
       * </pre>
       */
      public Builder clearReadCause() {
        bitField0_ = (bitField0_ & ~0x00000020);
        readCause_ = py.proto.Broadcastlog.ReadCause.fetch;
        onChanged();
        return this;
      }

      private py.proto.Broadcastlog.PBMembership membership_ = py.proto.Broadcastlog.PBMembership.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          py.proto.Broadcastlog.PBMembership, py.proto.Broadcastlog.PBMembership.Builder, py.proto.Broadcastlog.PBMembershipOrBuilder> membershipBuilder_;
      /**
       * <code>required .PBMembership membership = 7;</code>
       */
      public boolean hasMembership() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       * <code>required .PBMembership membership = 7;</code>
       */
      public py.proto.Broadcastlog.PBMembership getMembership() {
        if (membershipBuilder_ == null) {
          return membership_;
        } else {
          return membershipBuilder_.getMessage();
        }
      }
      /**
       * <code>required .PBMembership membership = 7;</code>
       */
      public Builder setMembership(py.proto.Broadcastlog.PBMembership value) {
        if (membershipBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          membership_ = value;
          onChanged();
        } else {
          membershipBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000040;
        return this;
      }
      /**
       * <code>required .PBMembership membership = 7;</code>
       */
      public Builder setMembership(
          py.proto.Broadcastlog.PBMembership.Builder builderForValue) {
        if (membershipBuilder_ == null) {
          membership_ = builderForValue.build();
          onChanged();
        } else {
          membershipBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000040;
        return this;
      }
      /**
       * <code>required .PBMembership membership = 7;</code>
       */
      public Builder mergeMembership(py.proto.Broadcastlog.PBMembership value) {
        if (membershipBuilder_ == null) {
          if (((bitField0_ & 0x00000040) == 0x00000040) &&
              membership_ != py.proto.Broadcastlog.PBMembership.getDefaultInstance()) {
            membership_ =
              py.proto.Broadcastlog.PBMembership.newBuilder(membership_).mergeFrom(value).buildPartial();
          } else {
            membership_ = value;
          }
          onChanged();
        } else {
          membershipBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000040;
        return this;
      }
      /**
       * <code>required .PBMembership membership = 7;</code>
       */
      public Builder clearMembership() {
        if (membershipBuilder_ == null) {
          membership_ = py.proto.Broadcastlog.PBMembership.getDefaultInstance();
          onChanged();
        } else {
          membershipBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000040);
        return this;
      }
      /**
       * <code>required .PBMembership membership = 7;</code>
       */
      public py.proto.Broadcastlog.PBMembership.Builder getMembershipBuilder() {
        bitField0_ |= 0x00000040;
        onChanged();
        return getMembershipFieldBuilder().getBuilder();
      }
      /**
       * <code>required .PBMembership membership = 7;</code>
       */
      public py.proto.Broadcastlog.PBMembershipOrBuilder getMembershipOrBuilder() {
        if (membershipBuilder_ != null) {
          return membershipBuilder_.getMessageOrBuilder();
        } else {
          return membership_;
        }
      }
      /**
       * <code>required .PBMembership membership = 7;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          py.proto.Broadcastlog.PBMembership, py.proto.Broadcastlog.PBMembership.Builder, py.proto.Broadcastlog.PBMembershipOrBuilder> 
          getMembershipFieldBuilder() {
        if (membershipBuilder_ == null) {
          membershipBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              py.proto.Broadcastlog.PBMembership, py.proto.Broadcastlog.PBMembership.Builder, py.proto.Broadcastlog.PBMembershipOrBuilder>(
                  getMembership(),
                  getParentForChildren(),
                  isClean());
          membership_ = null;
        }
        return membershipBuilder_;
      }

      private java.util.List<py.proto.Broadcastlog.PBReadRequestUnit> requestUnits_ =
        java.util.Collections.emptyList();
      private void ensureRequestUnitsIsMutable() {
        if (!((bitField0_ & 0x00000080) == 0x00000080)) {
          requestUnits_ = new java.util.LinkedList<py.proto.Broadcastlog.PBReadRequestUnit>(requestUnits_);
          bitField0_ |= 0x00000080;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          py.proto.Broadcastlog.PBReadRequestUnit, py.proto.Broadcastlog.PBReadRequestUnit.Builder, py.proto.Broadcastlog.PBReadRequestUnitOrBuilder> requestUnitsBuilder_;

      /**
       * <code>repeated .PBReadRequestUnit requestUnits = 8;</code>
       */
      public java.util.List<py.proto.Broadcastlog.PBReadRequestUnit> getRequestUnitsList() {
        if (requestUnitsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(requestUnits_);
        } else {
          return requestUnitsBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .PBReadRequestUnit requestUnits = 8;</code>
       */
      public int getRequestUnitsCount() {
        if (requestUnitsBuilder_ == null) {
          return requestUnits_.size();
        } else {
          return requestUnitsBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .PBReadRequestUnit requestUnits = 8;</code>
       */
      public py.proto.Broadcastlog.PBReadRequestUnit getRequestUnits(int index) {
        if (requestUnitsBuilder_ == null) {
          return requestUnits_.get(index);
        } else {
          return requestUnitsBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .PBReadRequestUnit requestUnits = 8;</code>
       */
      public Builder setRequestUnits(
          int index, py.proto.Broadcastlog.PBReadRequestUnit value) {
        if (requestUnitsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureRequestUnitsIsMutable();
          requestUnits_.set(index, value);
          onChanged();
        } else {
          requestUnitsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .PBReadRequestUnit requestUnits = 8;</code>
       */
      public Builder setRequestUnits(
          int index, py.proto.Broadcastlog.PBReadRequestUnit.Builder builderForValue) {
        if (requestUnitsBuilder_ == null) {
          ensureRequestUnitsIsMutable();
          requestUnits_.set(index, builderForValue.build());
          onChanged();
        } else {
          requestUnitsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .PBReadRequestUnit requestUnits = 8;</code>
       */
      public Builder addRequestUnits(py.proto.Broadcastlog.PBReadRequestUnit value) {
        if (requestUnitsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureRequestUnitsIsMutable();
          requestUnits_.add(value);
          onChanged();
        } else {
          requestUnitsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .PBReadRequestUnit requestUnits = 8;</code>
       */
      public Builder addRequestUnits(
          int index, py.proto.Broadcastlog.PBReadRequestUnit value) {
        if (requestUnitsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureRequestUnitsIsMutable();
          requestUnits_.add(index, value);
          onChanged();
        } else {
          requestUnitsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .PBReadRequestUnit requestUnits = 8;</code>
       */
      public Builder addRequestUnits(
          py.proto.Broadcastlog.PBReadRequestUnit.Builder builderForValue) {
        if (requestUnitsBuilder_ == null) {
          ensureRequestUnitsIsMutable();
          requestUnits_.add(builderForValue.build());
          onChanged();
        } else {
          requestUnitsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .PBReadRequestUnit requestUnits = 8;</code>
       */
      public Builder addRequestUnits(
          int index, py.proto.Broadcastlog.PBReadRequestUnit.Builder builderForValue) {
        if (requestUnitsBuilder_ == null) {
          ensureRequestUnitsIsMutable();
          requestUnits_.add(index, builderForValue.build());
          onChanged();
        } else {
          requestUnitsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .PBReadRequestUnit requestUnits = 8;</code>
       */
      public Builder addAllRequestUnits(
          java.lang.Iterable<? extends py.proto.Broadcastlog.PBReadRequestUnit> values) {
        if (requestUnitsBuilder_ == null) {
          ensureRequestUnitsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, requestUnits_);
          onChanged();
        } else {
          requestUnitsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .PBReadRequestUnit requestUnits = 8;</code>
       */
      public Builder clearRequestUnits() {
        if (requestUnitsBuilder_ == null) {
          requestUnits_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000080);
          onChanged();
        } else {
          requestUnitsBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .PBReadRequestUnit requestUnits = 8;</code>
       */
      public Builder removeRequestUnits(int index) {
        if (requestUnitsBuilder_ == null) {
          ensureRequestUnitsIsMutable();
          requestUnits_.remove(index);
          onChanged();
        } else {
          requestUnitsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .PBReadRequestUnit requestUnits = 8;</code>
       */
      public py.proto.Broadcastlog.PBReadRequestUnit.Builder getRequestUnitsBuilder(
          int index) {
        return getRequestUnitsFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .PBReadRequestUnit requestUnits = 8;</code>
       */
      public py.proto.Broadcastlog.PBReadRequestUnitOrBuilder getRequestUnitsOrBuilder(
          int index) {
        if (requestUnitsBuilder_ == null) {
          return requestUnits_.get(index);  } else {
          return requestUnitsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .PBReadRequestUnit requestUnits = 8;</code>
       */
      public java.util.List<? extends py.proto.Broadcastlog.PBReadRequestUnitOrBuilder> 
           getRequestUnitsOrBuilderList() {
        if (requestUnitsBuilder_ != null) {
          return requestUnitsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(requestUnits_);
        }
      }
      /**
       * <code>repeated .PBReadRequestUnit requestUnits = 8;</code>
       */
      public py.proto.Broadcastlog.PBReadRequestUnit.Builder addRequestUnitsBuilder() {
        return getRequestUnitsFieldBuilder().addBuilder(
            py.proto.Broadcastlog.PBReadRequestUnit.getDefaultInstance());
      }
      /**
       * <code>repeated .PBReadRequestUnit requestUnits = 8;</code>
       */
      public py.proto.Broadcastlog.PBReadRequestUnit.Builder addRequestUnitsBuilder(
          int index) {
        return getRequestUnitsFieldBuilder().addBuilder(
            index, py.proto.Broadcastlog.PBReadRequestUnit.getDefaultInstance());
      }
      /**
       * <code>repeated .PBReadRequestUnit requestUnits = 8;</code>
       */
      public java.util.List<py.proto.Broadcastlog.PBReadRequestUnit.Builder> 
           getRequestUnitsBuilderList() {
        return getRequestUnitsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          py.proto.Broadcastlog.PBReadRequestUnit, py.proto.Broadcastlog.PBReadRequestUnit.Builder, py.proto.Broadcastlog.PBReadRequestUnitOrBuilder> 
          getRequestUnitsFieldBuilder() {
        if (requestUnitsBuilder_ == null) {
          requestUnitsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              py.proto.Broadcastlog.PBReadRequestUnit, py.proto.Broadcastlog.PBReadRequestUnit.Builder, py.proto.Broadcastlog.PBReadRequestUnitOrBuilder>(
                  requestUnits_,
                  ((bitField0_ & 0x00000080) == 0x00000080),
                  getParentForChildren(),
                  isClean());
          requestUnits_ = null;
        }
        return requestUnitsBuilder_;
      }

      private java.util.List<java.lang.Long> logsToCommit_ = java.util.Collections.emptyList();
      private void ensureLogsToCommitIsMutable() {
        if (!((bitField0_ & 0x00000100) == 0x00000100)) {
          logsToCommit_ = new java.util.LinkedList<java.lang.Long>(logsToCommit_);
          bitField0_ |= 0x00000100;
         }
      }
      /**
       * <code>repeated int64 logsToCommit = 9;</code>
       */
      public java.util.List<java.lang.Long>
          getLogsToCommitList() {
        return java.util.Collections.unmodifiableList(logsToCommit_);
      }
      /**
       * <code>repeated int64 logsToCommit = 9;</code>
       */
      public int getLogsToCommitCount() {
        return logsToCommit_.size();
      }
      /**
       * <code>repeated int64 logsToCommit = 9;</code>
       */
      public long getLogsToCommit(int index) {
        return logsToCommit_.get(index);
      }
      /**
       * <code>repeated int64 logsToCommit = 9;</code>
       */
      public Builder setLogsToCommit(
          int index, long value) {
        ensureLogsToCommitIsMutable();
        logsToCommit_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated int64 logsToCommit = 9;</code>
       */
      public Builder addLogsToCommit(long value) {
        ensureLogsToCommitIsMutable();
        logsToCommit_.add(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated int64 logsToCommit = 9;</code>
       */
      public Builder addAllLogsToCommit(
          java.lang.Iterable<? extends java.lang.Long> values) {
        ensureLogsToCommitIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, logsToCommit_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated int64 logsToCommit = 9;</code>
       */
      public Builder clearLogsToCommit() {
        logsToCommit_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000100);
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:PBReadRequest)
    }

    static {
      defaultInstance = new PBReadRequest(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:PBReadRequest)
  }

  public interface PBReadResponseUnitOrBuilder extends
      // @@protoc_insertion_point(interface_extends:PBReadResponseUnit)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>required int64 offset = 1;</code>
     */
    boolean hasOffset();
    /**
     * <code>required int64 offset = 1;</code>
     */
    long getOffset();

    /**
     * <code>required int32 length = 2;</code>
     */
    boolean hasLength();
    /**
     * <code>required int32 length = 2;</code>
     */
    int getLength();

    /**
     * <code>required .PBIOUnitResult result = 3;</code>
     */
    boolean hasResult();
    /**
     * <code>required .PBIOUnitResult result = 3;</code>
     */
    py.proto.Broadcastlog.PBIOUnitResult getResult();

    /**
     * <code>repeated .PBBroadcastLog logsToMerge = 4;</code>
     */
    java.util.List<py.proto.Broadcastlog.PBBroadcastLog> 
        getLogsToMergeList();
    /**
     * <code>repeated .PBBroadcastLog logsToMerge = 4;</code>
     */
    py.proto.Broadcastlog.PBBroadcastLog getLogsToMerge(int index);
    /**
     * <code>repeated .PBBroadcastLog logsToMerge = 4;</code>
     */
    int getLogsToMergeCount();
    /**
     * <code>repeated .PBBroadcastLog logsToMerge = 4;</code>
     */
    java.util.List<? extends py.proto.Broadcastlog.PBBroadcastLogOrBuilder> 
        getLogsToMergeOrBuilderList();
    /**
     * <code>repeated .PBBroadcastLog logsToMerge = 4;</code>
     */
    py.proto.Broadcastlog.PBBroadcastLogOrBuilder getLogsToMergeOrBuilder(
        int index);

    /**
     * <code>optional int64 checksum = 5;</code>
     */
    boolean hasChecksum();
    /**
     * <code>optional int64 checksum = 5;</code>
     */
    long getChecksum();
  }
  /**
   * Protobuf type {@code PBReadResponseUnit}
   */
  public static final class PBReadResponseUnit extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:PBReadResponseUnit)
      PBReadResponseUnitOrBuilder {
    // Use PBReadResponseUnit.newBuilder() to construct.
    private PBReadResponseUnit(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private PBReadResponseUnit(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final PBReadResponseUnit defaultInstance;
    public static PBReadResponseUnit getDefaultInstance() {
      return defaultInstance;
    }

    public PBReadResponseUnit getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private PBReadResponseUnit(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              offset_ = input.readInt64();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              length_ = input.readInt32();
              break;
            }
            case 24: {
              int rawValue = input.readEnum();
              py.proto.Broadcastlog.PBIOUnitResult value = py.proto.Broadcastlog.PBIOUnitResult.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(3, rawValue);
              } else {
                bitField0_ |= 0x00000004;
                result_ = value;
              }
              break;
            }
            case 34: {
              if (!((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
                logsToMerge_ = new java.util.LinkedList<py.proto.Broadcastlog.PBBroadcastLog>();
                mutable_bitField0_ |= 0x00000008;
              }
              logsToMerge_.add(input.readMessage(py.proto.Broadcastlog.PBBroadcastLog.PARSER, extensionRegistry));
              break;
            }
            case 40: {
              bitField0_ |= 0x00000008;
              checksum_ = input.readInt64();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
          logsToMerge_ = java.util.Collections.unmodifiableList(logsToMerge_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return py.proto.Broadcastlog.internal_static_PBReadResponseUnit_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return py.proto.Broadcastlog.internal_static_PBReadResponseUnit_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              py.proto.Broadcastlog.PBReadResponseUnit.class, py.proto.Broadcastlog.PBReadResponseUnit.Builder.class);
    }

    public static com.google.protobuf.Parser<PBReadResponseUnit> PARSER =
        new com.google.protobuf.AbstractParser<PBReadResponseUnit>() {
      public PBReadResponseUnit parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new PBReadResponseUnit(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser<PBReadResponseUnit> getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int OFFSET_FIELD_NUMBER = 1;
    private long offset_;
    /**
     * <code>required int64 offset = 1;</code>
     */
    public boolean hasOffset() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required int64 offset = 1;</code>
     */
    public long getOffset() {
      return offset_;
    }

    public static final int LENGTH_FIELD_NUMBER = 2;
    private int length_;
    /**
     * <code>required int32 length = 2;</code>
     */
    public boolean hasLength() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required int32 length = 2;</code>
     */
    public int getLength() {
      return length_;
    }

    public static final int RESULT_FIELD_NUMBER = 3;
    private py.proto.Broadcastlog.PBIOUnitResult result_;
    /**
     * <code>required .PBIOUnitResult result = 3;</code>
     */
    public boolean hasResult() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>required .PBIOUnitResult result = 3;</code>
     */
    public py.proto.Broadcastlog.PBIOUnitResult getResult() {
      return result_;
    }

    public static final int LOGSTOMERGE_FIELD_NUMBER = 4;
    private java.util.List<py.proto.Broadcastlog.PBBroadcastLog> logsToMerge_;
    /**
     * <code>repeated .PBBroadcastLog logsToMerge = 4;</code>
     */
    public java.util.List<py.proto.Broadcastlog.PBBroadcastLog> getLogsToMergeList() {
      return logsToMerge_;
    }
    /**
     * <code>repeated .PBBroadcastLog logsToMerge = 4;</code>
     */
    public java.util.List<? extends py.proto.Broadcastlog.PBBroadcastLogOrBuilder> 
        getLogsToMergeOrBuilderList() {
      return logsToMerge_;
    }
    /**
     * <code>repeated .PBBroadcastLog logsToMerge = 4;</code>
     */
    public int getLogsToMergeCount() {
      return logsToMerge_.size();
    }
    /**
     * <code>repeated .PBBroadcastLog logsToMerge = 4;</code>
     */
    public py.proto.Broadcastlog.PBBroadcastLog getLogsToMerge(int index) {
      return logsToMerge_.get(index);
    }
    /**
     * <code>repeated .PBBroadcastLog logsToMerge = 4;</code>
     */
    public py.proto.Broadcastlog.PBBroadcastLogOrBuilder getLogsToMergeOrBuilder(
        int index) {
      return logsToMerge_.get(index);
    }

    public static final int CHECKSUM_FIELD_NUMBER = 5;
    private long checksum_;
    /**
     * <code>optional int64 checksum = 5;</code>
     */
    public boolean hasChecksum() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * <code>optional int64 checksum = 5;</code>
     */
    public long getChecksum() {
      return checksum_;
    }

    private void initFields() {
      offset_ = 0L;
      length_ = 0;
      result_ = py.proto.Broadcastlog.PBIOUnitResult.OK;
      logsToMerge_ = java.util.Collections.emptyList();
      checksum_ = 0L;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasOffset()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasLength()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasResult()) {
        memoizedIsInitialized = 0;
        return false;
      }
      for (int i = 0; i < getLogsToMergeCount(); i++) {
        if (!getLogsToMerge(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt64(1, offset_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, length_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeEnum(3, result_.getNumber());
      }
      for (int i = 0; i < logsToMerge_.size(); i++) {
        output.writeMessage(4, logsToMerge_.get(i));
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeInt64(5, checksum_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, offset_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, length_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, result_.getNumber());
      }
      for (int i = 0; i < logsToMerge_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, logsToMerge_.get(i));
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(5, checksum_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static py.proto.Broadcastlog.PBReadResponseUnit parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static py.proto.Broadcastlog.PBReadResponseUnit parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBReadResponseUnit parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static py.proto.Broadcastlog.PBReadResponseUnit parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBReadResponseUnit parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static py.proto.Broadcastlog.PBReadResponseUnit parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBReadResponseUnit parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static py.proto.Broadcastlog.PBReadResponseUnit parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBReadResponseUnit parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static py.proto.Broadcastlog.PBReadResponseUnit parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(py.proto.Broadcastlog.PBReadResponseUnit prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code PBReadResponseUnit}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:PBReadResponseUnit)
        py.proto.Broadcastlog.PBReadResponseUnitOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return py.proto.Broadcastlog.internal_static_PBReadResponseUnit_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return py.proto.Broadcastlog.internal_static_PBReadResponseUnit_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                py.proto.Broadcastlog.PBReadResponseUnit.class, py.proto.Broadcastlog.PBReadResponseUnit.Builder.class);
      }

      // Construct using py.proto.Broadcastlog.PBReadResponseUnit.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getLogsToMergeFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        offset_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000001);
        length_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        result_ = py.proto.Broadcastlog.PBIOUnitResult.OK;
        bitField0_ = (bitField0_ & ~0x00000004);
        if (logsToMergeBuilder_ == null) {
          logsToMerge_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000008);
        } else {
          logsToMergeBuilder_.clear();
        }
        checksum_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return py.proto.Broadcastlog.internal_static_PBReadResponseUnit_descriptor;
      }

      public py.proto.Broadcastlog.PBReadResponseUnit getDefaultInstanceForType() {
        return py.proto.Broadcastlog.PBReadResponseUnit.getDefaultInstance();
      }

      public py.proto.Broadcastlog.PBReadResponseUnit build() {
        py.proto.Broadcastlog.PBReadResponseUnit result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public py.proto.Broadcastlog.PBReadResponseUnit buildPartial() {
        py.proto.Broadcastlog.PBReadResponseUnit result = new py.proto.Broadcastlog.PBReadResponseUnit(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.offset_ = offset_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.length_ = length_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.result_ = result_;
        if (logsToMergeBuilder_ == null) {
          if (((bitField0_ & 0x00000008) == 0x00000008)) {
            logsToMerge_ = java.util.Collections.unmodifiableList(logsToMerge_);
            bitField0_ = (bitField0_ & ~0x00000008);
          }
          result.logsToMerge_ = logsToMerge_;
        } else {
          result.logsToMerge_ = logsToMergeBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000008;
        }
        result.checksum_ = checksum_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof py.proto.Broadcastlog.PBReadResponseUnit) {
          return mergeFrom((py.proto.Broadcastlog.PBReadResponseUnit)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(py.proto.Broadcastlog.PBReadResponseUnit other) {
        if (other == py.proto.Broadcastlog.PBReadResponseUnit.getDefaultInstance()) return this;
        if (other.hasOffset()) {
          setOffset(other.getOffset());
        }
        if (other.hasLength()) {
          setLength(other.getLength());
        }
        if (other.hasResult()) {
          setResult(other.getResult());
        }
        if (logsToMergeBuilder_ == null) {
          if (!other.logsToMerge_.isEmpty()) {
            if (logsToMerge_.isEmpty()) {
              logsToMerge_ = other.logsToMerge_;
              bitField0_ = (bitField0_ & ~0x00000008);
            } else {
              ensureLogsToMergeIsMutable();
              logsToMerge_.addAll(other.logsToMerge_);
            }
            onChanged();
          }
        } else {
          if (!other.logsToMerge_.isEmpty()) {
            if (logsToMergeBuilder_.isEmpty()) {
              logsToMergeBuilder_.dispose();
              logsToMergeBuilder_ = null;
              logsToMerge_ = other.logsToMerge_;
              bitField0_ = (bitField0_ & ~0x00000008);
              logsToMergeBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getLogsToMergeFieldBuilder() : null;
            } else {
              logsToMergeBuilder_.addAllMessages(other.logsToMerge_);
            }
          }
        }
        if (other.hasChecksum()) {
          setChecksum(other.getChecksum());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasOffset()) {
          
          return false;
        }
        if (!hasLength()) {
          
          return false;
        }
        if (!hasResult()) {
          
          return false;
        }
        for (int i = 0; i < getLogsToMergeCount(); i++) {
          if (!getLogsToMerge(i).isInitialized()) {
            
            return false;
          }
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        py.proto.Broadcastlog.PBReadResponseUnit parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (py.proto.Broadcastlog.PBReadResponseUnit) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private long offset_ ;
      /**
       * <code>required int64 offset = 1;</code>
       */
      public boolean hasOffset() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required int64 offset = 1;</code>
       */
      public long getOffset() {
        return offset_;
      }
      /**
       * <code>required int64 offset = 1;</code>
       */
      public Builder setOffset(long value) {
        bitField0_ |= 0x00000001;
        offset_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int64 offset = 1;</code>
       */
      public Builder clearOffset() {
        bitField0_ = (bitField0_ & ~0x00000001);
        offset_ = 0L;
        onChanged();
        return this;
      }

      private int length_ ;
      /**
       * <code>required int32 length = 2;</code>
       */
      public boolean hasLength() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required int32 length = 2;</code>
       */
      public int getLength() {
        return length_;
      }
      /**
       * <code>required int32 length = 2;</code>
       */
      public Builder setLength(int value) {
        bitField0_ |= 0x00000002;
        length_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int32 length = 2;</code>
       */
      public Builder clearLength() {
        bitField0_ = (bitField0_ & ~0x00000002);
        length_ = 0;
        onChanged();
        return this;
      }

      private py.proto.Broadcastlog.PBIOUnitResult result_ = py.proto.Broadcastlog.PBIOUnitResult.OK;
      /**
       * <code>required .PBIOUnitResult result = 3;</code>
       */
      public boolean hasResult() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>required .PBIOUnitResult result = 3;</code>
       */
      public py.proto.Broadcastlog.PBIOUnitResult getResult() {
        return result_;
      }
      /**
       * <code>required .PBIOUnitResult result = 3;</code>
       */
      public Builder setResult(py.proto.Broadcastlog.PBIOUnitResult value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        result_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required .PBIOUnitResult result = 3;</code>
       */
      public Builder clearResult() {
        bitField0_ = (bitField0_ & ~0x00000004);
        result_ = py.proto.Broadcastlog.PBIOUnitResult.OK;
        onChanged();
        return this;
      }

      private java.util.List<py.proto.Broadcastlog.PBBroadcastLog> logsToMerge_ =
        java.util.Collections.emptyList();
      private void ensureLogsToMergeIsMutable() {
        if (!((bitField0_ & 0x00000008) == 0x00000008)) {
          logsToMerge_ = new java.util.LinkedList<py.proto.Broadcastlog.PBBroadcastLog>(logsToMerge_);
          bitField0_ |= 0x00000008;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          py.proto.Broadcastlog.PBBroadcastLog, py.proto.Broadcastlog.PBBroadcastLog.Builder, py.proto.Broadcastlog.PBBroadcastLogOrBuilder> logsToMergeBuilder_;

      /**
       * <code>repeated .PBBroadcastLog logsToMerge = 4;</code>
       */
      public java.util.List<py.proto.Broadcastlog.PBBroadcastLog> getLogsToMergeList() {
        if (logsToMergeBuilder_ == null) {
          return java.util.Collections.unmodifiableList(logsToMerge_);
        } else {
          return logsToMergeBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .PBBroadcastLog logsToMerge = 4;</code>
       */
      public int getLogsToMergeCount() {
        if (logsToMergeBuilder_ == null) {
          return logsToMerge_.size();
        } else {
          return logsToMergeBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .PBBroadcastLog logsToMerge = 4;</code>
       */
      public py.proto.Broadcastlog.PBBroadcastLog getLogsToMerge(int index) {
        if (logsToMergeBuilder_ == null) {
          return logsToMerge_.get(index);
        } else {
          return logsToMergeBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .PBBroadcastLog logsToMerge = 4;</code>
       */
      public Builder setLogsToMerge(
          int index, py.proto.Broadcastlog.PBBroadcastLog value) {
        if (logsToMergeBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureLogsToMergeIsMutable();
          logsToMerge_.set(index, value);
          onChanged();
        } else {
          logsToMergeBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .PBBroadcastLog logsToMerge = 4;</code>
       */
      public Builder setLogsToMerge(
          int index, py.proto.Broadcastlog.PBBroadcastLog.Builder builderForValue) {
        if (logsToMergeBuilder_ == null) {
          ensureLogsToMergeIsMutable();
          logsToMerge_.set(index, builderForValue.build());
          onChanged();
        } else {
          logsToMergeBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .PBBroadcastLog logsToMerge = 4;</code>
       */
      public Builder addLogsToMerge(py.proto.Broadcastlog.PBBroadcastLog value) {
        if (logsToMergeBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureLogsToMergeIsMutable();
          logsToMerge_.add(value);
          onChanged();
        } else {
          logsToMergeBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .PBBroadcastLog logsToMerge = 4;</code>
       */
      public Builder addLogsToMerge(
          int index, py.proto.Broadcastlog.PBBroadcastLog value) {
        if (logsToMergeBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureLogsToMergeIsMutable();
          logsToMerge_.add(index, value);
          onChanged();
        } else {
          logsToMergeBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .PBBroadcastLog logsToMerge = 4;</code>
       */
      public Builder addLogsToMerge(
          py.proto.Broadcastlog.PBBroadcastLog.Builder builderForValue) {
        if (logsToMergeBuilder_ == null) {
          ensureLogsToMergeIsMutable();
          logsToMerge_.add(builderForValue.build());
          onChanged();
        } else {
          logsToMergeBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .PBBroadcastLog logsToMerge = 4;</code>
       */
      public Builder addLogsToMerge(
          int index, py.proto.Broadcastlog.PBBroadcastLog.Builder builderForValue) {
        if (logsToMergeBuilder_ == null) {
          ensureLogsToMergeIsMutable();
          logsToMerge_.add(index, builderForValue.build());
          onChanged();
        } else {
          logsToMergeBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .PBBroadcastLog logsToMerge = 4;</code>
       */
      public Builder addAllLogsToMerge(
          java.lang.Iterable<? extends py.proto.Broadcastlog.PBBroadcastLog> values) {
        if (logsToMergeBuilder_ == null) {
          ensureLogsToMergeIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, logsToMerge_);
          onChanged();
        } else {
          logsToMergeBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .PBBroadcastLog logsToMerge = 4;</code>
       */
      public Builder clearLogsToMerge() {
        if (logsToMergeBuilder_ == null) {
          logsToMerge_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000008);
          onChanged();
        } else {
          logsToMergeBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .PBBroadcastLog logsToMerge = 4;</code>
       */
      public Builder removeLogsToMerge(int index) {
        if (logsToMergeBuilder_ == null) {
          ensureLogsToMergeIsMutable();
          logsToMerge_.remove(index);
          onChanged();
        } else {
          logsToMergeBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .PBBroadcastLog logsToMerge = 4;</code>
       */
      public py.proto.Broadcastlog.PBBroadcastLog.Builder getLogsToMergeBuilder(
          int index) {
        return getLogsToMergeFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .PBBroadcastLog logsToMerge = 4;</code>
       */
      public py.proto.Broadcastlog.PBBroadcastLogOrBuilder getLogsToMergeOrBuilder(
          int index) {
        if (logsToMergeBuilder_ == null) {
          return logsToMerge_.get(index);  } else {
          return logsToMergeBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .PBBroadcastLog logsToMerge = 4;</code>
       */
      public java.util.List<? extends py.proto.Broadcastlog.PBBroadcastLogOrBuilder> 
           getLogsToMergeOrBuilderList() {
        if (logsToMergeBuilder_ != null) {
          return logsToMergeBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(logsToMerge_);
        }
      }
      /**
       * <code>repeated .PBBroadcastLog logsToMerge = 4;</code>
       */
      public py.proto.Broadcastlog.PBBroadcastLog.Builder addLogsToMergeBuilder() {
        return getLogsToMergeFieldBuilder().addBuilder(
            py.proto.Broadcastlog.PBBroadcastLog.getDefaultInstance());
      }
      /**
       * <code>repeated .PBBroadcastLog logsToMerge = 4;</code>
       */
      public py.proto.Broadcastlog.PBBroadcastLog.Builder addLogsToMergeBuilder(
          int index) {
        return getLogsToMergeFieldBuilder().addBuilder(
            index, py.proto.Broadcastlog.PBBroadcastLog.getDefaultInstance());
      }
      /**
       * <code>repeated .PBBroadcastLog logsToMerge = 4;</code>
       */
      public java.util.List<py.proto.Broadcastlog.PBBroadcastLog.Builder> 
           getLogsToMergeBuilderList() {
        return getLogsToMergeFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          py.proto.Broadcastlog.PBBroadcastLog, py.proto.Broadcastlog.PBBroadcastLog.Builder, py.proto.Broadcastlog.PBBroadcastLogOrBuilder> 
          getLogsToMergeFieldBuilder() {
        if (logsToMergeBuilder_ == null) {
          logsToMergeBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              py.proto.Broadcastlog.PBBroadcastLog, py.proto.Broadcastlog.PBBroadcastLog.Builder, py.proto.Broadcastlog.PBBroadcastLogOrBuilder>(
                  logsToMerge_,
                  ((bitField0_ & 0x00000008) == 0x00000008),
                  getParentForChildren(),
                  isClean());
          logsToMerge_ = null;
        }
        return logsToMergeBuilder_;
      }

      private long checksum_ ;
      /**
       * <code>optional int64 checksum = 5;</code>
       */
      public boolean hasChecksum() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * <code>optional int64 checksum = 5;</code>
       */
      public long getChecksum() {
        return checksum_;
      }
      /**
       * <code>optional int64 checksum = 5;</code>
       */
      public Builder setChecksum(long value) {
        bitField0_ |= 0x00000010;
        checksum_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int64 checksum = 5;</code>
       */
      public Builder clearChecksum() {
        bitField0_ = (bitField0_ & ~0x00000010);
        checksum_ = 0L;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:PBReadResponseUnit)
    }

    static {
      defaultInstance = new PBReadResponseUnit(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:PBReadResponseUnit)
  }

  public interface PBReadResponseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:PBReadResponse)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>required int64 requestId = 1;</code>
     */
    boolean hasRequestId();
    /**
     * <code>required int64 requestId = 1;</code>
     */
    long getRequestId();

    /**
     * <code>repeated .PBReadResponseUnit responseUnits = 2;</code>
     */
    java.util.List<py.proto.Broadcastlog.PBReadResponseUnit> 
        getResponseUnitsList();
    /**
     * <code>repeated .PBReadResponseUnit responseUnits = 2;</code>
     */
    py.proto.Broadcastlog.PBReadResponseUnit getResponseUnits(int index);
    /**
     * <code>repeated .PBReadResponseUnit responseUnits = 2;</code>
     */
    int getResponseUnitsCount();
    /**
     * <code>repeated .PBReadResponseUnit responseUnits = 2;</code>
     */
    java.util.List<? extends py.proto.Broadcastlog.PBReadResponseUnitOrBuilder> 
        getResponseUnitsOrBuilderList();
    /**
     * <code>repeated .PBReadResponseUnit responseUnits = 2;</code>
     */
    py.proto.Broadcastlog.PBReadResponseUnitOrBuilder getResponseUnitsOrBuilder(
        int index);

    /**
     * <code>optional int64 pclId = 3;</code>
     */
    boolean hasPclId();
    /**
     * <code>optional int64 pclId = 3;</code>
     */
    long getPclId();
  }
  /**
   * Protobuf type {@code PBReadResponse}
   */
  public static final class PBReadResponse extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:PBReadResponse)
      PBReadResponseOrBuilder {
    // Use PBReadResponse.newBuilder() to construct.
    private PBReadResponse(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private PBReadResponse(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final PBReadResponse defaultInstance;
    public static PBReadResponse getDefaultInstance() {
      return defaultInstance;
    }

    public PBReadResponse getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private PBReadResponse(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              requestId_ = input.readInt64();
              break;
            }
            case 18: {
              if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                responseUnits_ = new java.util.LinkedList<py.proto.Broadcastlog.PBReadResponseUnit>();
                mutable_bitField0_ |= 0x00000002;
              }
              responseUnits_.add(input.readMessage(py.proto.Broadcastlog.PBReadResponseUnit.PARSER, extensionRegistry));
              break;
            }
            case 24: {
              bitField0_ |= 0x00000002;
              pclId_ = input.readInt64();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          responseUnits_ = java.util.Collections.unmodifiableList(responseUnits_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return py.proto.Broadcastlog.internal_static_PBReadResponse_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return py.proto.Broadcastlog.internal_static_PBReadResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              py.proto.Broadcastlog.PBReadResponse.class, py.proto.Broadcastlog.PBReadResponse.Builder.class);
    }

    public static com.google.protobuf.Parser<PBReadResponse> PARSER =
        new com.google.protobuf.AbstractParser<PBReadResponse>() {
      public PBReadResponse parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new PBReadResponse(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser<PBReadResponse> getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int REQUESTID_FIELD_NUMBER = 1;
    private long requestId_;
    /**
     * <code>required int64 requestId = 1;</code>
     */
    public boolean hasRequestId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required int64 requestId = 1;</code>
     */
    public long getRequestId() {
      return requestId_;
    }

    public static final int RESPONSEUNITS_FIELD_NUMBER = 2;
    private java.util.List<py.proto.Broadcastlog.PBReadResponseUnit> responseUnits_;
    /**
     * <code>repeated .PBReadResponseUnit responseUnits = 2;</code>
     */
    public java.util.List<py.proto.Broadcastlog.PBReadResponseUnit> getResponseUnitsList() {
      return responseUnits_;
    }
    /**
     * <code>repeated .PBReadResponseUnit responseUnits = 2;</code>
     */
    public java.util.List<? extends py.proto.Broadcastlog.PBReadResponseUnitOrBuilder> 
        getResponseUnitsOrBuilderList() {
      return responseUnits_;
    }
    /**
     * <code>repeated .PBReadResponseUnit responseUnits = 2;</code>
     */
    public int getResponseUnitsCount() {
      return responseUnits_.size();
    }
    /**
     * <code>repeated .PBReadResponseUnit responseUnits = 2;</code>
     */
    public py.proto.Broadcastlog.PBReadResponseUnit getResponseUnits(int index) {
      return responseUnits_.get(index);
    }
    /**
     * <code>repeated .PBReadResponseUnit responseUnits = 2;</code>
     */
    public py.proto.Broadcastlog.PBReadResponseUnitOrBuilder getResponseUnitsOrBuilder(
        int index) {
      return responseUnits_.get(index);
    }

    public static final int PCLID_FIELD_NUMBER = 3;
    private long pclId_;
    /**
     * <code>optional int64 pclId = 3;</code>
     */
    public boolean hasPclId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>optional int64 pclId = 3;</code>
     */
    public long getPclId() {
      return pclId_;
    }

    private void initFields() {
      requestId_ = 0L;
      responseUnits_ = java.util.Collections.emptyList();
      pclId_ = 0L;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasRequestId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      for (int i = 0; i < getResponseUnitsCount(); i++) {
        if (!getResponseUnits(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt64(1, requestId_);
      }
      for (int i = 0; i < responseUnits_.size(); i++) {
        output.writeMessage(2, responseUnits_.get(i));
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt64(3, pclId_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, requestId_);
      }
      for (int i = 0; i < responseUnits_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, responseUnits_.get(i));
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(3, pclId_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static py.proto.Broadcastlog.PBReadResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static py.proto.Broadcastlog.PBReadResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBReadResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static py.proto.Broadcastlog.PBReadResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBReadResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static py.proto.Broadcastlog.PBReadResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBReadResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static py.proto.Broadcastlog.PBReadResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBReadResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static py.proto.Broadcastlog.PBReadResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(py.proto.Broadcastlog.PBReadResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code PBReadResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:PBReadResponse)
        py.proto.Broadcastlog.PBReadResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return py.proto.Broadcastlog.internal_static_PBReadResponse_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return py.proto.Broadcastlog.internal_static_PBReadResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                py.proto.Broadcastlog.PBReadResponse.class, py.proto.Broadcastlog.PBReadResponse.Builder.class);
      }

      // Construct using py.proto.Broadcastlog.PBReadResponse.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getResponseUnitsFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        requestId_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000001);
        if (responseUnitsBuilder_ == null) {
          responseUnits_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
        } else {
          responseUnitsBuilder_.clear();
        }
        pclId_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return py.proto.Broadcastlog.internal_static_PBReadResponse_descriptor;
      }

      public py.proto.Broadcastlog.PBReadResponse getDefaultInstanceForType() {
        return py.proto.Broadcastlog.PBReadResponse.getDefaultInstance();
      }

      public py.proto.Broadcastlog.PBReadResponse build() {
        py.proto.Broadcastlog.PBReadResponse result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public py.proto.Broadcastlog.PBReadResponse buildPartial() {
        py.proto.Broadcastlog.PBReadResponse result = new py.proto.Broadcastlog.PBReadResponse(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.requestId_ = requestId_;
        if (responseUnitsBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            responseUnits_ = java.util.Collections.unmodifiableList(responseUnits_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.responseUnits_ = responseUnits_;
        } else {
          result.responseUnits_ = responseUnitsBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000002;
        }
        result.pclId_ = pclId_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof py.proto.Broadcastlog.PBReadResponse) {
          return mergeFrom((py.proto.Broadcastlog.PBReadResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(py.proto.Broadcastlog.PBReadResponse other) {
        if (other == py.proto.Broadcastlog.PBReadResponse.getDefaultInstance()) return this;
        if (other.hasRequestId()) {
          setRequestId(other.getRequestId());
        }
        if (responseUnitsBuilder_ == null) {
          if (!other.responseUnits_.isEmpty()) {
            if (responseUnits_.isEmpty()) {
              responseUnits_ = other.responseUnits_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensureResponseUnitsIsMutable();
              responseUnits_.addAll(other.responseUnits_);
            }
            onChanged();
          }
        } else {
          if (!other.responseUnits_.isEmpty()) {
            if (responseUnitsBuilder_.isEmpty()) {
              responseUnitsBuilder_.dispose();
              responseUnitsBuilder_ = null;
              responseUnits_ = other.responseUnits_;
              bitField0_ = (bitField0_ & ~0x00000002);
              responseUnitsBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getResponseUnitsFieldBuilder() : null;
            } else {
              responseUnitsBuilder_.addAllMessages(other.responseUnits_);
            }
          }
        }
        if (other.hasPclId()) {
          setPclId(other.getPclId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasRequestId()) {
          
          return false;
        }
        for (int i = 0; i < getResponseUnitsCount(); i++) {
          if (!getResponseUnits(i).isInitialized()) {
            
            return false;
          }
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        py.proto.Broadcastlog.PBReadResponse parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (py.proto.Broadcastlog.PBReadResponse) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private long requestId_ ;
      /**
       * <code>required int64 requestId = 1;</code>
       */
      public boolean hasRequestId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required int64 requestId = 1;</code>
       */
      public long getRequestId() {
        return requestId_;
      }
      /**
       * <code>required int64 requestId = 1;</code>
       */
      public Builder setRequestId(long value) {
        bitField0_ |= 0x00000001;
        requestId_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int64 requestId = 1;</code>
       */
      public Builder clearRequestId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        requestId_ = 0L;
        onChanged();
        return this;
      }

      private java.util.List<py.proto.Broadcastlog.PBReadResponseUnit> responseUnits_ =
        java.util.Collections.emptyList();
      private void ensureResponseUnitsIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          responseUnits_ = new java.util.LinkedList<py.proto.Broadcastlog.PBReadResponseUnit>(responseUnits_);
          bitField0_ |= 0x00000002;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          py.proto.Broadcastlog.PBReadResponseUnit, py.proto.Broadcastlog.PBReadResponseUnit.Builder, py.proto.Broadcastlog.PBReadResponseUnitOrBuilder> responseUnitsBuilder_;

      /**
       * <code>repeated .PBReadResponseUnit responseUnits = 2;</code>
       */
      public java.util.List<py.proto.Broadcastlog.PBReadResponseUnit> getResponseUnitsList() {
        if (responseUnitsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(responseUnits_);
        } else {
          return responseUnitsBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .PBReadResponseUnit responseUnits = 2;</code>
       */
      public int getResponseUnitsCount() {
        if (responseUnitsBuilder_ == null) {
          return responseUnits_.size();
        } else {
          return responseUnitsBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .PBReadResponseUnit responseUnits = 2;</code>
       */
      public py.proto.Broadcastlog.PBReadResponseUnit getResponseUnits(int index) {
        if (responseUnitsBuilder_ == null) {
          return responseUnits_.get(index);
        } else {
          return responseUnitsBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .PBReadResponseUnit responseUnits = 2;</code>
       */
      public Builder setResponseUnits(
          int index, py.proto.Broadcastlog.PBReadResponseUnit value) {
        if (responseUnitsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureResponseUnitsIsMutable();
          responseUnits_.set(index, value);
          onChanged();
        } else {
          responseUnitsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .PBReadResponseUnit responseUnits = 2;</code>
       */
      public Builder setResponseUnits(
          int index, py.proto.Broadcastlog.PBReadResponseUnit.Builder builderForValue) {
        if (responseUnitsBuilder_ == null) {
          ensureResponseUnitsIsMutable();
          responseUnits_.set(index, builderForValue.build());
          onChanged();
        } else {
          responseUnitsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .PBReadResponseUnit responseUnits = 2;</code>
       */
      public Builder addResponseUnits(py.proto.Broadcastlog.PBReadResponseUnit value) {
        if (responseUnitsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureResponseUnitsIsMutable();
          responseUnits_.add(value);
          onChanged();
        } else {
          responseUnitsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .PBReadResponseUnit responseUnits = 2;</code>
       */
      public Builder addResponseUnits(
          int index, py.proto.Broadcastlog.PBReadResponseUnit value) {
        if (responseUnitsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureResponseUnitsIsMutable();
          responseUnits_.add(index, value);
          onChanged();
        } else {
          responseUnitsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .PBReadResponseUnit responseUnits = 2;</code>
       */
      public Builder addResponseUnits(
          py.proto.Broadcastlog.PBReadResponseUnit.Builder builderForValue) {
        if (responseUnitsBuilder_ == null) {
          ensureResponseUnitsIsMutable();
          responseUnits_.add(builderForValue.build());
          onChanged();
        } else {
          responseUnitsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .PBReadResponseUnit responseUnits = 2;</code>
       */
      public Builder addResponseUnits(
          int index, py.proto.Broadcastlog.PBReadResponseUnit.Builder builderForValue) {
        if (responseUnitsBuilder_ == null) {
          ensureResponseUnitsIsMutable();
          responseUnits_.add(index, builderForValue.build());
          onChanged();
        } else {
          responseUnitsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .PBReadResponseUnit responseUnits = 2;</code>
       */
      public Builder addAllResponseUnits(
          java.lang.Iterable<? extends py.proto.Broadcastlog.PBReadResponseUnit> values) {
        if (responseUnitsBuilder_ == null) {
          ensureResponseUnitsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, responseUnits_);
          onChanged();
        } else {
          responseUnitsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .PBReadResponseUnit responseUnits = 2;</code>
       */
      public Builder clearResponseUnits() {
        if (responseUnitsBuilder_ == null) {
          responseUnits_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          responseUnitsBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .PBReadResponseUnit responseUnits = 2;</code>
       */
      public Builder removeResponseUnits(int index) {
        if (responseUnitsBuilder_ == null) {
          ensureResponseUnitsIsMutable();
          responseUnits_.remove(index);
          onChanged();
        } else {
          responseUnitsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .PBReadResponseUnit responseUnits = 2;</code>
       */
      public py.proto.Broadcastlog.PBReadResponseUnit.Builder getResponseUnitsBuilder(
          int index) {
        return getResponseUnitsFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .PBReadResponseUnit responseUnits = 2;</code>
       */
      public py.proto.Broadcastlog.PBReadResponseUnitOrBuilder getResponseUnitsOrBuilder(
          int index) {
        if (responseUnitsBuilder_ == null) {
          return responseUnits_.get(index);  } else {
          return responseUnitsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .PBReadResponseUnit responseUnits = 2;</code>
       */
      public java.util.List<? extends py.proto.Broadcastlog.PBReadResponseUnitOrBuilder> 
           getResponseUnitsOrBuilderList() {
        if (responseUnitsBuilder_ != null) {
          return responseUnitsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(responseUnits_);
        }
      }
      /**
       * <code>repeated .PBReadResponseUnit responseUnits = 2;</code>
       */
      public py.proto.Broadcastlog.PBReadResponseUnit.Builder addResponseUnitsBuilder() {
        return getResponseUnitsFieldBuilder().addBuilder(
            py.proto.Broadcastlog.PBReadResponseUnit.getDefaultInstance());
      }
      /**
       * <code>repeated .PBReadResponseUnit responseUnits = 2;</code>
       */
      public py.proto.Broadcastlog.PBReadResponseUnit.Builder addResponseUnitsBuilder(
          int index) {
        return getResponseUnitsFieldBuilder().addBuilder(
            index, py.proto.Broadcastlog.PBReadResponseUnit.getDefaultInstance());
      }
      /**
       * <code>repeated .PBReadResponseUnit responseUnits = 2;</code>
       */
      public java.util.List<py.proto.Broadcastlog.PBReadResponseUnit.Builder> 
           getResponseUnitsBuilderList() {
        return getResponseUnitsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          py.proto.Broadcastlog.PBReadResponseUnit, py.proto.Broadcastlog.PBReadResponseUnit.Builder, py.proto.Broadcastlog.PBReadResponseUnitOrBuilder> 
          getResponseUnitsFieldBuilder() {
        if (responseUnitsBuilder_ == null) {
          responseUnitsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              py.proto.Broadcastlog.PBReadResponseUnit, py.proto.Broadcastlog.PBReadResponseUnit.Builder, py.proto.Broadcastlog.PBReadResponseUnitOrBuilder>(
                  responseUnits_,
                  ((bitField0_ & 0x00000002) == 0x00000002),
                  getParentForChildren(),
                  isClean());
          responseUnits_ = null;
        }
        return responseUnitsBuilder_;
      }

      private long pclId_ ;
      /**
       * <code>optional int64 pclId = 3;</code>
       */
      public boolean hasPclId() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>optional int64 pclId = 3;</code>
       */
      public long getPclId() {
        return pclId_;
      }
      /**
       * <code>optional int64 pclId = 3;</code>
       */
      public Builder setPclId(long value) {
        bitField0_ |= 0x00000004;
        pclId_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int64 pclId = 3;</code>
       */
      public Builder clearPclId() {
        bitField0_ = (bitField0_ & ~0x00000004);
        pclId_ = 0L;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:PBReadResponse)
    }

    static {
      defaultInstance = new PBReadResponse(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:PBReadResponse)
  }

  public interface PBClonePageRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:PBClonePageRequest)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>required int64 requestId = 1;</code>
     */
    boolean hasRequestId();
    /**
     * <code>required int64 requestId = 1;</code>
     */
    long getRequestId();

    /**
     * <code>required int64 volumeId = 2;</code>
     */
    boolean hasVolumeId();
    /**
     * <code>required int64 volumeId = 2;</code>
     */
    long getVolumeId();

    /**
     * <code>required int32 segIndex = 3;</code>
     */
    boolean hasSegIndex();
    /**
     * <code>required int32 segIndex = 3;</code>
     */
    int getSegIndex();

    /**
     * <code>required int32 snapshotId = 4;</code>
     */
    boolean hasSnapshotId();
    /**
     * <code>required int32 snapshotId = 4;</code>
     */
    int getSnapshotId();

    /**
     * <code>repeated int32 pageIndex = 5;</code>
     */
    java.util.List<java.lang.Integer> getPageIndexList();
    /**
     * <code>repeated int32 pageIndex = 5;</code>
     */
    int getPageIndexCount();
    /**
     * <code>repeated int32 pageIndex = 5;</code>
     */
    int getPageIndex(int index);
  }
  /**
   * Protobuf type {@code PBClonePageRequest}
   */
  public static final class PBClonePageRequest extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:PBClonePageRequest)
      PBClonePageRequestOrBuilder {
    // Use PBClonePageRequest.newBuilder() to construct.
    private PBClonePageRequest(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private PBClonePageRequest(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final PBClonePageRequest defaultInstance;
    public static PBClonePageRequest getDefaultInstance() {
      return defaultInstance;
    }

    public PBClonePageRequest getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private PBClonePageRequest(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              requestId_ = input.readInt64();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              volumeId_ = input.readInt64();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              segIndex_ = input.readInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              snapshotId_ = input.readInt32();
              break;
            }
            case 40: {
              if (!((mutable_bitField0_ & 0x00000010) == 0x00000010)) {
                pageIndex_ = new java.util.LinkedList<java.lang.Integer>();
                mutable_bitField0_ |= 0x00000010;
              }
              pageIndex_.add(input.readInt32());
              break;
            }
            case 42: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              if (!((mutable_bitField0_ & 0x00000010) == 0x00000010) && input.getBytesUntilLimit() > 0) {
                pageIndex_ = new java.util.LinkedList<java.lang.Integer>();
                mutable_bitField0_ |= 0x00000010;
              }
              while (input.getBytesUntilLimit() > 0) {
                pageIndex_.add(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000010) == 0x00000010)) {
          pageIndex_ = java.util.Collections.unmodifiableList(pageIndex_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return py.proto.Broadcastlog.internal_static_PBClonePageRequest_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return py.proto.Broadcastlog.internal_static_PBClonePageRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              py.proto.Broadcastlog.PBClonePageRequest.class, py.proto.Broadcastlog.PBClonePageRequest.Builder.class);
    }

    public static com.google.protobuf.Parser<PBClonePageRequest> PARSER =
        new com.google.protobuf.AbstractParser<PBClonePageRequest>() {
      public PBClonePageRequest parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new PBClonePageRequest(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser<PBClonePageRequest> getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int REQUESTID_FIELD_NUMBER = 1;
    private long requestId_;
    /**
     * <code>required int64 requestId = 1;</code>
     */
    public boolean hasRequestId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required int64 requestId = 1;</code>
     */
    public long getRequestId() {
      return requestId_;
    }

    public static final int VOLUMEID_FIELD_NUMBER = 2;
    private long volumeId_;
    /**
     * <code>required int64 volumeId = 2;</code>
     */
    public boolean hasVolumeId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required int64 volumeId = 2;</code>
     */
    public long getVolumeId() {
      return volumeId_;
    }

    public static final int SEGINDEX_FIELD_NUMBER = 3;
    private int segIndex_;
    /**
     * <code>required int32 segIndex = 3;</code>
     */
    public boolean hasSegIndex() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>required int32 segIndex = 3;</code>
     */
    public int getSegIndex() {
      return segIndex_;
    }

    public static final int SNAPSHOTID_FIELD_NUMBER = 4;
    private int snapshotId_;
    /**
     * <code>required int32 snapshotId = 4;</code>
     */
    public boolean hasSnapshotId() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * <code>required int32 snapshotId = 4;</code>
     */
    public int getSnapshotId() {
      return snapshotId_;
    }

    public static final int PAGEINDEX_FIELD_NUMBER = 5;
    private java.util.List<java.lang.Integer> pageIndex_;
    /**
     * <code>repeated int32 pageIndex = 5;</code>
     */
    public java.util.List<java.lang.Integer>
        getPageIndexList() {
      return pageIndex_;
    }
    /**
     * <code>repeated int32 pageIndex = 5;</code>
     */
    public int getPageIndexCount() {
      return pageIndex_.size();
    }
    /**
     * <code>repeated int32 pageIndex = 5;</code>
     */
    public int getPageIndex(int index) {
      return pageIndex_.get(index);
    }

    private void initFields() {
      requestId_ = 0L;
      volumeId_ = 0L;
      segIndex_ = 0;
      snapshotId_ = 0;
      pageIndex_ = java.util.Collections.emptyList();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasRequestId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasVolumeId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasSegIndex()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasSnapshotId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt64(1, requestId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt64(2, volumeId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt32(3, segIndex_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeInt32(4, snapshotId_);
      }
      for (int i = 0; i < pageIndex_.size(); i++) {
        output.writeInt32(5, pageIndex_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, requestId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(2, volumeId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, segIndex_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, snapshotId_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < pageIndex_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(pageIndex_.get(i));
        }
        size += dataSize;
        size += 1 * getPageIndexList().size();
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static py.proto.Broadcastlog.PBClonePageRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static py.proto.Broadcastlog.PBClonePageRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBClonePageRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static py.proto.Broadcastlog.PBClonePageRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBClonePageRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static py.proto.Broadcastlog.PBClonePageRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBClonePageRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static py.proto.Broadcastlog.PBClonePageRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBClonePageRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static py.proto.Broadcastlog.PBClonePageRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(py.proto.Broadcastlog.PBClonePageRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code PBClonePageRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:PBClonePageRequest)
        py.proto.Broadcastlog.PBClonePageRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return py.proto.Broadcastlog.internal_static_PBClonePageRequest_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return py.proto.Broadcastlog.internal_static_PBClonePageRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                py.proto.Broadcastlog.PBClonePageRequest.class, py.proto.Broadcastlog.PBClonePageRequest.Builder.class);
      }

      // Construct using py.proto.Broadcastlog.PBClonePageRequest.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        requestId_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000001);
        volumeId_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000002);
        segIndex_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        snapshotId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        pageIndex_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return py.proto.Broadcastlog.internal_static_PBClonePageRequest_descriptor;
      }

      public py.proto.Broadcastlog.PBClonePageRequest getDefaultInstanceForType() {
        return py.proto.Broadcastlog.PBClonePageRequest.getDefaultInstance();
      }

      public py.proto.Broadcastlog.PBClonePageRequest build() {
        py.proto.Broadcastlog.PBClonePageRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public py.proto.Broadcastlog.PBClonePageRequest buildPartial() {
        py.proto.Broadcastlog.PBClonePageRequest result = new py.proto.Broadcastlog.PBClonePageRequest(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.requestId_ = requestId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.volumeId_ = volumeId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.segIndex_ = segIndex_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.snapshotId_ = snapshotId_;
        if (((bitField0_ & 0x00000010) == 0x00000010)) {
          pageIndex_ = java.util.Collections.unmodifiableList(pageIndex_);
          bitField0_ = (bitField0_ & ~0x00000010);
        }
        result.pageIndex_ = pageIndex_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof py.proto.Broadcastlog.PBClonePageRequest) {
          return mergeFrom((py.proto.Broadcastlog.PBClonePageRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(py.proto.Broadcastlog.PBClonePageRequest other) {
        if (other == py.proto.Broadcastlog.PBClonePageRequest.getDefaultInstance()) return this;
        if (other.hasRequestId()) {
          setRequestId(other.getRequestId());
        }
        if (other.hasVolumeId()) {
          setVolumeId(other.getVolumeId());
        }
        if (other.hasSegIndex()) {
          setSegIndex(other.getSegIndex());
        }
        if (other.hasSnapshotId()) {
          setSnapshotId(other.getSnapshotId());
        }
        if (!other.pageIndex_.isEmpty()) {
          if (pageIndex_.isEmpty()) {
            pageIndex_ = other.pageIndex_;
            bitField0_ = (bitField0_ & ~0x00000010);
          } else {
            ensurePageIndexIsMutable();
            pageIndex_.addAll(other.pageIndex_);
          }
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasRequestId()) {
          
          return false;
        }
        if (!hasVolumeId()) {
          
          return false;
        }
        if (!hasSegIndex()) {
          
          return false;
        }
        if (!hasSnapshotId()) {
          
          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        py.proto.Broadcastlog.PBClonePageRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (py.proto.Broadcastlog.PBClonePageRequest) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private long requestId_ ;
      /**
       * <code>required int64 requestId = 1;</code>
       */
      public boolean hasRequestId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required int64 requestId = 1;</code>
       */
      public long getRequestId() {
        return requestId_;
      }
      /**
       * <code>required int64 requestId = 1;</code>
       */
      public Builder setRequestId(long value) {
        bitField0_ |= 0x00000001;
        requestId_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int64 requestId = 1;</code>
       */
      public Builder clearRequestId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        requestId_ = 0L;
        onChanged();
        return this;
      }

      private long volumeId_ ;
      /**
       * <code>required int64 volumeId = 2;</code>
       */
      public boolean hasVolumeId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required int64 volumeId = 2;</code>
       */
      public long getVolumeId() {
        return volumeId_;
      }
      /**
       * <code>required int64 volumeId = 2;</code>
       */
      public Builder setVolumeId(long value) {
        bitField0_ |= 0x00000002;
        volumeId_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int64 volumeId = 2;</code>
       */
      public Builder clearVolumeId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        volumeId_ = 0L;
        onChanged();
        return this;
      }

      private int segIndex_ ;
      /**
       * <code>required int32 segIndex = 3;</code>
       */
      public boolean hasSegIndex() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>required int32 segIndex = 3;</code>
       */
      public int getSegIndex() {
        return segIndex_;
      }
      /**
       * <code>required int32 segIndex = 3;</code>
       */
      public Builder setSegIndex(int value) {
        bitField0_ |= 0x00000004;
        segIndex_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int32 segIndex = 3;</code>
       */
      public Builder clearSegIndex() {
        bitField0_ = (bitField0_ & ~0x00000004);
        segIndex_ = 0;
        onChanged();
        return this;
      }

      private int snapshotId_ ;
      /**
       * <code>required int32 snapshotId = 4;</code>
       */
      public boolean hasSnapshotId() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * <code>required int32 snapshotId = 4;</code>
       */
      public int getSnapshotId() {
        return snapshotId_;
      }
      /**
       * <code>required int32 snapshotId = 4;</code>
       */
      public Builder setSnapshotId(int value) {
        bitField0_ |= 0x00000008;
        snapshotId_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int32 snapshotId = 4;</code>
       */
      public Builder clearSnapshotId() {
        bitField0_ = (bitField0_ & ~0x00000008);
        snapshotId_ = 0;
        onChanged();
        return this;
      }

      private java.util.List<java.lang.Integer> pageIndex_ = java.util.Collections.emptyList();
      private void ensurePageIndexIsMutable() {
        if (!((bitField0_ & 0x00000010) == 0x00000010)) {
          pageIndex_ = new java.util.LinkedList<java.lang.Integer>(pageIndex_);
          bitField0_ |= 0x00000010;
         }
      }
      /**
       * <code>repeated int32 pageIndex = 5;</code>
       */
      public java.util.List<java.lang.Integer>
          getPageIndexList() {
        return java.util.Collections.unmodifiableList(pageIndex_);
      }
      /**
       * <code>repeated int32 pageIndex = 5;</code>
       */
      public int getPageIndexCount() {
        return pageIndex_.size();
      }
      /**
       * <code>repeated int32 pageIndex = 5;</code>
       */
      public int getPageIndex(int index) {
        return pageIndex_.get(index);
      }
      /**
       * <code>repeated int32 pageIndex = 5;</code>
       */
      public Builder setPageIndex(
          int index, int value) {
        ensurePageIndexIsMutable();
        pageIndex_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated int32 pageIndex = 5;</code>
       */
      public Builder addPageIndex(int value) {
        ensurePageIndexIsMutable();
        pageIndex_.add(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated int32 pageIndex = 5;</code>
       */
      public Builder addAllPageIndex(
          java.lang.Iterable<? extends java.lang.Integer> values) {
        ensurePageIndexIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, pageIndex_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated int32 pageIndex = 5;</code>
       */
      public Builder clearPageIndex() {
        pageIndex_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000010);
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:PBClonePageRequest)
    }

    static {
      defaultInstance = new PBClonePageRequest(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:PBClonePageRequest)
  }

  public interface PBClonePageResponseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:PBClonePageResponse)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>required int64 requestId = 1;</code>
     */
    boolean hasRequestId();
    /**
     * <code>required int64 requestId = 1;</code>
     */
    long getRequestId();

    /**
     * <code>required int64 volumeId = 2;</code>
     */
    boolean hasVolumeId();
    /**
     * <code>required int64 volumeId = 2;</code>
     */
    long getVolumeId();

    /**
     * <code>required int32 segIndex = 3;</code>
     */
    boolean hasSegIndex();
    /**
     * <code>required int32 segIndex = 3;</code>
     */
    int getSegIndex();

    /**
     * <code>required int32 snapshotId = 4;</code>
     */
    boolean hasSnapshotId();
    /**
     * <code>required int32 snapshotId = 4;</code>
     */
    int getSnapshotId();

    /**
     * <code>required .PBMembership membership = 5;</code>
     */
    boolean hasMembership();
    /**
     * <code>required .PBMembership membership = 5;</code>
     */
    py.proto.Broadcastlog.PBMembership getMembership();
    /**
     * <code>required .PBMembership membership = 5;</code>
     */
    py.proto.Broadcastlog.PBMembershipOrBuilder getMembershipOrBuilder();

    /**
     * <code>required bool success = 6;</code>
     */
    boolean hasSuccess();
    /**
     * <code>required bool success = 6;</code>
     */
    boolean getSuccess();

    /**
     * <code>repeated .PBDataPage page = 7;</code>
     */
    java.util.List<py.proto.Broadcastlog.PBDataPage> 
        getPageList();
    /**
     * <code>repeated .PBDataPage page = 7;</code>
     */
    py.proto.Broadcastlog.PBDataPage getPage(int index);
    /**
     * <code>repeated .PBDataPage page = 7;</code>
     */
    int getPageCount();
    /**
     * <code>repeated .PBDataPage page = 7;</code>
     */
    java.util.List<? extends py.proto.Broadcastlog.PBDataPageOrBuilder> 
        getPageOrBuilderList();
    /**
     * <code>repeated .PBDataPage page = 7;</code>
     */
    py.proto.Broadcastlog.PBDataPageOrBuilder getPageOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code PBClonePageResponse}
   */
  public static final class PBClonePageResponse extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:PBClonePageResponse)
      PBClonePageResponseOrBuilder {
    // Use PBClonePageResponse.newBuilder() to construct.
    private PBClonePageResponse(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private PBClonePageResponse(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final PBClonePageResponse defaultInstance;
    public static PBClonePageResponse getDefaultInstance() {
      return defaultInstance;
    }

    public PBClonePageResponse getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private PBClonePageResponse(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              requestId_ = input.readInt64();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              volumeId_ = input.readInt64();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              segIndex_ = input.readInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              snapshotId_ = input.readInt32();
              break;
            }
            case 42: {
              py.proto.Broadcastlog.PBMembership.Builder subBuilder = null;
              if (((bitField0_ & 0x00000010) == 0x00000010)) {
                subBuilder = membership_.toBuilder();
              }
              membership_ = input.readMessage(py.proto.Broadcastlog.PBMembership.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(membership_);
                membership_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000010;
              break;
            }
            case 48: {
              bitField0_ |= 0x00000020;
              success_ = input.readBool();
              break;
            }
            case 58: {
              if (!((mutable_bitField0_ & 0x00000040) == 0x00000040)) {
                page_ = new java.util.LinkedList<py.proto.Broadcastlog.PBDataPage>();
                mutable_bitField0_ |= 0x00000040;
              }
              page_.add(input.readMessage(py.proto.Broadcastlog.PBDataPage.PARSER, extensionRegistry));
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000040) == 0x00000040)) {
          page_ = java.util.Collections.unmodifiableList(page_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return py.proto.Broadcastlog.internal_static_PBClonePageResponse_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return py.proto.Broadcastlog.internal_static_PBClonePageResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              py.proto.Broadcastlog.PBClonePageResponse.class, py.proto.Broadcastlog.PBClonePageResponse.Builder.class);
    }

    public static com.google.protobuf.Parser<PBClonePageResponse> PARSER =
        new com.google.protobuf.AbstractParser<PBClonePageResponse>() {
      public PBClonePageResponse parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new PBClonePageResponse(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser<PBClonePageResponse> getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int REQUESTID_FIELD_NUMBER = 1;
    private long requestId_;
    /**
     * <code>required int64 requestId = 1;</code>
     */
    public boolean hasRequestId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required int64 requestId = 1;</code>
     */
    public long getRequestId() {
      return requestId_;
    }

    public static final int VOLUMEID_FIELD_NUMBER = 2;
    private long volumeId_;
    /**
     * <code>required int64 volumeId = 2;</code>
     */
    public boolean hasVolumeId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required int64 volumeId = 2;</code>
     */
    public long getVolumeId() {
      return volumeId_;
    }

    public static final int SEGINDEX_FIELD_NUMBER = 3;
    private int segIndex_;
    /**
     * <code>required int32 segIndex = 3;</code>
     */
    public boolean hasSegIndex() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>required int32 segIndex = 3;</code>
     */
    public int getSegIndex() {
      return segIndex_;
    }

    public static final int SNAPSHOTID_FIELD_NUMBER = 4;
    private int snapshotId_;
    /**
     * <code>required int32 snapshotId = 4;</code>
     */
    public boolean hasSnapshotId() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * <code>required int32 snapshotId = 4;</code>
     */
    public int getSnapshotId() {
      return snapshotId_;
    }

    public static final int MEMBERSHIP_FIELD_NUMBER = 5;
    private py.proto.Broadcastlog.PBMembership membership_;
    /**
     * <code>required .PBMembership membership = 5;</code>
     */
    public boolean hasMembership() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * <code>required .PBMembership membership = 5;</code>
     */
    public py.proto.Broadcastlog.PBMembership getMembership() {
      return membership_;
    }
    /**
     * <code>required .PBMembership membership = 5;</code>
     */
    public py.proto.Broadcastlog.PBMembershipOrBuilder getMembershipOrBuilder() {
      return membership_;
    }

    public static final int SUCCESS_FIELD_NUMBER = 6;
    private boolean success_;
    /**
     * <code>required bool success = 6;</code>
     */
    public boolean hasSuccess() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     * <code>required bool success = 6;</code>
     */
    public boolean getSuccess() {
      return success_;
    }

    public static final int PAGE_FIELD_NUMBER = 7;
    private java.util.List<py.proto.Broadcastlog.PBDataPage> page_;
    /**
     * <code>repeated .PBDataPage page = 7;</code>
     */
    public java.util.List<py.proto.Broadcastlog.PBDataPage> getPageList() {
      return page_;
    }
    /**
     * <code>repeated .PBDataPage page = 7;</code>
     */
    public java.util.List<? extends py.proto.Broadcastlog.PBDataPageOrBuilder> 
        getPageOrBuilderList() {
      return page_;
    }
    /**
     * <code>repeated .PBDataPage page = 7;</code>
     */
    public int getPageCount() {
      return page_.size();
    }
    /**
     * <code>repeated .PBDataPage page = 7;</code>
     */
    public py.proto.Broadcastlog.PBDataPage getPage(int index) {
      return page_.get(index);
    }
    /**
     * <code>repeated .PBDataPage page = 7;</code>
     */
    public py.proto.Broadcastlog.PBDataPageOrBuilder getPageOrBuilder(
        int index) {
      return page_.get(index);
    }

    private void initFields() {
      requestId_ = 0L;
      volumeId_ = 0L;
      segIndex_ = 0;
      snapshotId_ = 0;
      membership_ = py.proto.Broadcastlog.PBMembership.getDefaultInstance();
      success_ = false;
      page_ = java.util.Collections.emptyList();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasRequestId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasVolumeId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasSegIndex()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasSnapshotId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasMembership()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasSuccess()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getMembership().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      for (int i = 0; i < getPageCount(); i++) {
        if (!getPage(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt64(1, requestId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt64(2, volumeId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt32(3, segIndex_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeInt32(4, snapshotId_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeMessage(5, membership_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeBool(6, success_);
      }
      for (int i = 0; i < page_.size(); i++) {
        output.writeMessage(7, page_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, requestId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(2, volumeId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, segIndex_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, snapshotId_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, membership_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(6, success_);
      }
      for (int i = 0; i < page_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(7, page_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static py.proto.Broadcastlog.PBClonePageResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static py.proto.Broadcastlog.PBClonePageResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBClonePageResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static py.proto.Broadcastlog.PBClonePageResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBClonePageResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static py.proto.Broadcastlog.PBClonePageResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBClonePageResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static py.proto.Broadcastlog.PBClonePageResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBClonePageResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static py.proto.Broadcastlog.PBClonePageResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(py.proto.Broadcastlog.PBClonePageResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code PBClonePageResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:PBClonePageResponse)
        py.proto.Broadcastlog.PBClonePageResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return py.proto.Broadcastlog.internal_static_PBClonePageResponse_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return py.proto.Broadcastlog.internal_static_PBClonePageResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                py.proto.Broadcastlog.PBClonePageResponse.class, py.proto.Broadcastlog.PBClonePageResponse.Builder.class);
      }

      // Construct using py.proto.Broadcastlog.PBClonePageResponse.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getMembershipFieldBuilder();
          getPageFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        requestId_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000001);
        volumeId_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000002);
        segIndex_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        snapshotId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        if (membershipBuilder_ == null) {
          membership_ = py.proto.Broadcastlog.PBMembership.getDefaultInstance();
        } else {
          membershipBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000010);
        success_ = false;
        bitField0_ = (bitField0_ & ~0x00000020);
        if (pageBuilder_ == null) {
          page_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000040);
        } else {
          pageBuilder_.clear();
        }
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return py.proto.Broadcastlog.internal_static_PBClonePageResponse_descriptor;
      }

      public py.proto.Broadcastlog.PBClonePageResponse getDefaultInstanceForType() {
        return py.proto.Broadcastlog.PBClonePageResponse.getDefaultInstance();
      }

      public py.proto.Broadcastlog.PBClonePageResponse build() {
        py.proto.Broadcastlog.PBClonePageResponse result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public py.proto.Broadcastlog.PBClonePageResponse buildPartial() {
        py.proto.Broadcastlog.PBClonePageResponse result = new py.proto.Broadcastlog.PBClonePageResponse(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.requestId_ = requestId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.volumeId_ = volumeId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.segIndex_ = segIndex_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.snapshotId_ = snapshotId_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        if (membershipBuilder_ == null) {
          result.membership_ = membership_;
        } else {
          result.membership_ = membershipBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        result.success_ = success_;
        if (pageBuilder_ == null) {
          if (((bitField0_ & 0x00000040) == 0x00000040)) {
            page_ = java.util.Collections.unmodifiableList(page_);
            bitField0_ = (bitField0_ & ~0x00000040);
          }
          result.page_ = page_;
        } else {
          result.page_ = pageBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof py.proto.Broadcastlog.PBClonePageResponse) {
          return mergeFrom((py.proto.Broadcastlog.PBClonePageResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(py.proto.Broadcastlog.PBClonePageResponse other) {
        if (other == py.proto.Broadcastlog.PBClonePageResponse.getDefaultInstance()) return this;
        if (other.hasRequestId()) {
          setRequestId(other.getRequestId());
        }
        if (other.hasVolumeId()) {
          setVolumeId(other.getVolumeId());
        }
        if (other.hasSegIndex()) {
          setSegIndex(other.getSegIndex());
        }
        if (other.hasSnapshotId()) {
          setSnapshotId(other.getSnapshotId());
        }
        if (other.hasMembership()) {
          mergeMembership(other.getMembership());
        }
        if (other.hasSuccess()) {
          setSuccess(other.getSuccess());
        }
        if (pageBuilder_ == null) {
          if (!other.page_.isEmpty()) {
            if (page_.isEmpty()) {
              page_ = other.page_;
              bitField0_ = (bitField0_ & ~0x00000040);
            } else {
              ensurePageIsMutable();
              page_.addAll(other.page_);
            }
            onChanged();
          }
        } else {
          if (!other.page_.isEmpty()) {
            if (pageBuilder_.isEmpty()) {
              pageBuilder_.dispose();
              pageBuilder_ = null;
              page_ = other.page_;
              bitField0_ = (bitField0_ & ~0x00000040);
              pageBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getPageFieldBuilder() : null;
            } else {
              pageBuilder_.addAllMessages(other.page_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasRequestId()) {
          
          return false;
        }
        if (!hasVolumeId()) {
          
          return false;
        }
        if (!hasSegIndex()) {
          
          return false;
        }
        if (!hasSnapshotId()) {
          
          return false;
        }
        if (!hasMembership()) {
          
          return false;
        }
        if (!hasSuccess()) {
          
          return false;
        }
        if (!getMembership().isInitialized()) {
          
          return false;
        }
        for (int i = 0; i < getPageCount(); i++) {
          if (!getPage(i).isInitialized()) {
            
            return false;
          }
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        py.proto.Broadcastlog.PBClonePageResponse parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (py.proto.Broadcastlog.PBClonePageResponse) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private long requestId_ ;
      /**
       * <code>required int64 requestId = 1;</code>
       */
      public boolean hasRequestId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required int64 requestId = 1;</code>
       */
      public long getRequestId() {
        return requestId_;
      }
      /**
       * <code>required int64 requestId = 1;</code>
       */
      public Builder setRequestId(long value) {
        bitField0_ |= 0x00000001;
        requestId_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int64 requestId = 1;</code>
       */
      public Builder clearRequestId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        requestId_ = 0L;
        onChanged();
        return this;
      }

      private long volumeId_ ;
      /**
       * <code>required int64 volumeId = 2;</code>
       */
      public boolean hasVolumeId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required int64 volumeId = 2;</code>
       */
      public long getVolumeId() {
        return volumeId_;
      }
      /**
       * <code>required int64 volumeId = 2;</code>
       */
      public Builder setVolumeId(long value) {
        bitField0_ |= 0x00000002;
        volumeId_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int64 volumeId = 2;</code>
       */
      public Builder clearVolumeId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        volumeId_ = 0L;
        onChanged();
        return this;
      }

      private int segIndex_ ;
      /**
       * <code>required int32 segIndex = 3;</code>
       */
      public boolean hasSegIndex() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>required int32 segIndex = 3;</code>
       */
      public int getSegIndex() {
        return segIndex_;
      }
      /**
       * <code>required int32 segIndex = 3;</code>
       */
      public Builder setSegIndex(int value) {
        bitField0_ |= 0x00000004;
        segIndex_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int32 segIndex = 3;</code>
       */
      public Builder clearSegIndex() {
        bitField0_ = (bitField0_ & ~0x00000004);
        segIndex_ = 0;
        onChanged();
        return this;
      }

      private int snapshotId_ ;
      /**
       * <code>required int32 snapshotId = 4;</code>
       */
      public boolean hasSnapshotId() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * <code>required int32 snapshotId = 4;</code>
       */
      public int getSnapshotId() {
        return snapshotId_;
      }
      /**
       * <code>required int32 snapshotId = 4;</code>
       */
      public Builder setSnapshotId(int value) {
        bitField0_ |= 0x00000008;
        snapshotId_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int32 snapshotId = 4;</code>
       */
      public Builder clearSnapshotId() {
        bitField0_ = (bitField0_ & ~0x00000008);
        snapshotId_ = 0;
        onChanged();
        return this;
      }

      private py.proto.Broadcastlog.PBMembership membership_ = py.proto.Broadcastlog.PBMembership.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          py.proto.Broadcastlog.PBMembership, py.proto.Broadcastlog.PBMembership.Builder, py.proto.Broadcastlog.PBMembershipOrBuilder> membershipBuilder_;
      /**
       * <code>required .PBMembership membership = 5;</code>
       */
      public boolean hasMembership() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * <code>required .PBMembership membership = 5;</code>
       */
      public py.proto.Broadcastlog.PBMembership getMembership() {
        if (membershipBuilder_ == null) {
          return membership_;
        } else {
          return membershipBuilder_.getMessage();
        }
      }
      /**
       * <code>required .PBMembership membership = 5;</code>
       */
      public Builder setMembership(py.proto.Broadcastlog.PBMembership value) {
        if (membershipBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          membership_ = value;
          onChanged();
        } else {
          membershipBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       * <code>required .PBMembership membership = 5;</code>
       */
      public Builder setMembership(
          py.proto.Broadcastlog.PBMembership.Builder builderForValue) {
        if (membershipBuilder_ == null) {
          membership_ = builderForValue.build();
          onChanged();
        } else {
          membershipBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       * <code>required .PBMembership membership = 5;</code>
       */
      public Builder mergeMembership(py.proto.Broadcastlog.PBMembership value) {
        if (membershipBuilder_ == null) {
          if (((bitField0_ & 0x00000010) == 0x00000010) &&
              membership_ != py.proto.Broadcastlog.PBMembership.getDefaultInstance()) {
            membership_ =
              py.proto.Broadcastlog.PBMembership.newBuilder(membership_).mergeFrom(value).buildPartial();
          } else {
            membership_ = value;
          }
          onChanged();
        } else {
          membershipBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       * <code>required .PBMembership membership = 5;</code>
       */
      public Builder clearMembership() {
        if (membershipBuilder_ == null) {
          membership_ = py.proto.Broadcastlog.PBMembership.getDefaultInstance();
          onChanged();
        } else {
          membershipBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }
      /**
       * <code>required .PBMembership membership = 5;</code>
       */
      public py.proto.Broadcastlog.PBMembership.Builder getMembershipBuilder() {
        bitField0_ |= 0x00000010;
        onChanged();
        return getMembershipFieldBuilder().getBuilder();
      }
      /**
       * <code>required .PBMembership membership = 5;</code>
       */
      public py.proto.Broadcastlog.PBMembershipOrBuilder getMembershipOrBuilder() {
        if (membershipBuilder_ != null) {
          return membershipBuilder_.getMessageOrBuilder();
        } else {
          return membership_;
        }
      }
      /**
       * <code>required .PBMembership membership = 5;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          py.proto.Broadcastlog.PBMembership, py.proto.Broadcastlog.PBMembership.Builder, py.proto.Broadcastlog.PBMembershipOrBuilder> 
          getMembershipFieldBuilder() {
        if (membershipBuilder_ == null) {
          membershipBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              py.proto.Broadcastlog.PBMembership, py.proto.Broadcastlog.PBMembership.Builder, py.proto.Broadcastlog.PBMembershipOrBuilder>(
                  getMembership(),
                  getParentForChildren(),
                  isClean());
          membership_ = null;
        }
        return membershipBuilder_;
      }

      private boolean success_ ;
      /**
       * <code>required bool success = 6;</code>
       */
      public boolean hasSuccess() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * <code>required bool success = 6;</code>
       */
      public boolean getSuccess() {
        return success_;
      }
      /**
       * <code>required bool success = 6;</code>
       */
      public Builder setSuccess(boolean value) {
        bitField0_ |= 0x00000020;
        success_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required bool success = 6;</code>
       */
      public Builder clearSuccess() {
        bitField0_ = (bitField0_ & ~0x00000020);
        success_ = false;
        onChanged();
        return this;
      }

      private java.util.List<py.proto.Broadcastlog.PBDataPage> page_ =
        java.util.Collections.emptyList();
      private void ensurePageIsMutable() {
        if (!((bitField0_ & 0x00000040) == 0x00000040)) {
          page_ = new java.util.LinkedList<py.proto.Broadcastlog.PBDataPage>(page_);
          bitField0_ |= 0x00000040;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          py.proto.Broadcastlog.PBDataPage, py.proto.Broadcastlog.PBDataPage.Builder, py.proto.Broadcastlog.PBDataPageOrBuilder> pageBuilder_;

      /**
       * <code>repeated .PBDataPage page = 7;</code>
       */
      public java.util.List<py.proto.Broadcastlog.PBDataPage> getPageList() {
        if (pageBuilder_ == null) {
          return java.util.Collections.unmodifiableList(page_);
        } else {
          return pageBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .PBDataPage page = 7;</code>
       */
      public int getPageCount() {
        if (pageBuilder_ == null) {
          return page_.size();
        } else {
          return pageBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .PBDataPage page = 7;</code>
       */
      public py.proto.Broadcastlog.PBDataPage getPage(int index) {
        if (pageBuilder_ == null) {
          return page_.get(index);
        } else {
          return pageBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .PBDataPage page = 7;</code>
       */
      public Builder setPage(
          int index, py.proto.Broadcastlog.PBDataPage value) {
        if (pageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePageIsMutable();
          page_.set(index, value);
          onChanged();
        } else {
          pageBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .PBDataPage page = 7;</code>
       */
      public Builder setPage(
          int index, py.proto.Broadcastlog.PBDataPage.Builder builderForValue) {
        if (pageBuilder_ == null) {
          ensurePageIsMutable();
          page_.set(index, builderForValue.build());
          onChanged();
        } else {
          pageBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .PBDataPage page = 7;</code>
       */
      public Builder addPage(py.proto.Broadcastlog.PBDataPage value) {
        if (pageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePageIsMutable();
          page_.add(value);
          onChanged();
        } else {
          pageBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .PBDataPage page = 7;</code>
       */
      public Builder addPage(
          int index, py.proto.Broadcastlog.PBDataPage value) {
        if (pageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePageIsMutable();
          page_.add(index, value);
          onChanged();
        } else {
          pageBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .PBDataPage page = 7;</code>
       */
      public Builder addPage(
          py.proto.Broadcastlog.PBDataPage.Builder builderForValue) {
        if (pageBuilder_ == null) {
          ensurePageIsMutable();
          page_.add(builderForValue.build());
          onChanged();
        } else {
          pageBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .PBDataPage page = 7;</code>
       */
      public Builder addPage(
          int index, py.proto.Broadcastlog.PBDataPage.Builder builderForValue) {
        if (pageBuilder_ == null) {
          ensurePageIsMutable();
          page_.add(index, builderForValue.build());
          onChanged();
        } else {
          pageBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .PBDataPage page = 7;</code>
       */
      public Builder addAllPage(
          java.lang.Iterable<? extends py.proto.Broadcastlog.PBDataPage> values) {
        if (pageBuilder_ == null) {
          ensurePageIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, page_);
          onChanged();
        } else {
          pageBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .PBDataPage page = 7;</code>
       */
      public Builder clearPage() {
        if (pageBuilder_ == null) {
          page_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000040);
          onChanged();
        } else {
          pageBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .PBDataPage page = 7;</code>
       */
      public Builder removePage(int index) {
        if (pageBuilder_ == null) {
          ensurePageIsMutable();
          page_.remove(index);
          onChanged();
        } else {
          pageBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .PBDataPage page = 7;</code>
       */
      public py.proto.Broadcastlog.PBDataPage.Builder getPageBuilder(
          int index) {
        return getPageFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .PBDataPage page = 7;</code>
       */
      public py.proto.Broadcastlog.PBDataPageOrBuilder getPageOrBuilder(
          int index) {
        if (pageBuilder_ == null) {
          return page_.get(index);  } else {
          return pageBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .PBDataPage page = 7;</code>
       */
      public java.util.List<? extends py.proto.Broadcastlog.PBDataPageOrBuilder> 
           getPageOrBuilderList() {
        if (pageBuilder_ != null) {
          return pageBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(page_);
        }
      }
      /**
       * <code>repeated .PBDataPage page = 7;</code>
       */
      public py.proto.Broadcastlog.PBDataPage.Builder addPageBuilder() {
        return getPageFieldBuilder().addBuilder(
            py.proto.Broadcastlog.PBDataPage.getDefaultInstance());
      }
      /**
       * <code>repeated .PBDataPage page = 7;</code>
       */
      public py.proto.Broadcastlog.PBDataPage.Builder addPageBuilder(
          int index) {
        return getPageFieldBuilder().addBuilder(
            index, py.proto.Broadcastlog.PBDataPage.getDefaultInstance());
      }
      /**
       * <code>repeated .PBDataPage page = 7;</code>
       */
      public java.util.List<py.proto.Broadcastlog.PBDataPage.Builder> 
           getPageBuilderList() {
        return getPageFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          py.proto.Broadcastlog.PBDataPage, py.proto.Broadcastlog.PBDataPage.Builder, py.proto.Broadcastlog.PBDataPageOrBuilder> 
          getPageFieldBuilder() {
        if (pageBuilder_ == null) {
          pageBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              py.proto.Broadcastlog.PBDataPage, py.proto.Broadcastlog.PBDataPage.Builder, py.proto.Broadcastlog.PBDataPageOrBuilder>(
                  page_,
                  ((bitField0_ & 0x00000040) == 0x00000040),
                  getParentForChildren(),
                  isClean());
          page_ = null;
        }
        return pageBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:PBClonePageResponse)
    }

    static {
      defaultInstance = new PBClonePageResponse(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:PBClonePageResponse)
  }

  public interface PBDataPageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:PBDataPage)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>required int32 pageIndex = 1;</code>
     */
    boolean hasPageIndex();
    /**
     * <code>required int32 pageIndex = 1;</code>
     */
    int getPageIndex();

    /**
     * <code>optional bytes data = 2;</code>
     */
    boolean hasData();
    /**
     * <code>optional bytes data = 2;</code>
     */
    com.google.protobuf.ByteString getData();

    /**
     * <code>optional int64 checksum = 3;</code>
     */
    boolean hasChecksum();
    /**
     * <code>optional int64 checksum = 3;</code>
     */
    long getChecksum();

    /**
     * <code>repeated int32 snapshotId = 4;</code>
     */
    java.util.List<java.lang.Integer> getSnapshotIdList();
    /**
     * <code>repeated int32 snapshotId = 4;</code>
     */
    int getSnapshotIdCount();
    /**
     * <code>repeated int32 snapshotId = 4;</code>
     */
    int getSnapshotId(int index);

    /**
     * <code>required bool empty = 5;</code>
     */
    boolean hasEmpty();
    /**
     * <code>required bool empty = 5;</code>
     */
    boolean getEmpty();
  }
  /**
   * Protobuf type {@code PBDataPage}
   */
  public static final class PBDataPage extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:PBDataPage)
      PBDataPageOrBuilder {
    // Use PBDataPage.newBuilder() to construct.
    private PBDataPage(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private PBDataPage(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final PBDataPage defaultInstance;
    public static PBDataPage getDefaultInstance() {
      return defaultInstance;
    }

    public PBDataPage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private PBDataPage(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              pageIndex_ = input.readInt32();
              break;
            }
            case 18: {
              bitField0_ |= 0x00000002;
              data_ = input.readBytes();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              checksum_ = input.readInt64();
              break;
            }
            case 32: {
              if (!((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
                snapshotId_ = new java.util.LinkedList<java.lang.Integer>();
                mutable_bitField0_ |= 0x00000008;
              }
              snapshotId_.add(input.readInt32());
              break;
            }
            case 34: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              if (!((mutable_bitField0_ & 0x00000008) == 0x00000008) && input.getBytesUntilLimit() > 0) {
                snapshotId_ = new java.util.LinkedList<java.lang.Integer>();
                mutable_bitField0_ |= 0x00000008;
              }
              while (input.getBytesUntilLimit() > 0) {
                snapshotId_.add(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
            case 40: {
              bitField0_ |= 0x00000008;
              empty_ = input.readBool();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
          snapshotId_ = java.util.Collections.unmodifiableList(snapshotId_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return py.proto.Broadcastlog.internal_static_PBDataPage_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return py.proto.Broadcastlog.internal_static_PBDataPage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              py.proto.Broadcastlog.PBDataPage.class, py.proto.Broadcastlog.PBDataPage.Builder.class);
    }

    public static com.google.protobuf.Parser<PBDataPage> PARSER =
        new com.google.protobuf.AbstractParser<PBDataPage>() {
      public PBDataPage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new PBDataPage(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser<PBDataPage> getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int PAGEINDEX_FIELD_NUMBER = 1;
    private int pageIndex_;
    /**
     * <code>required int32 pageIndex = 1;</code>
     */
    public boolean hasPageIndex() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required int32 pageIndex = 1;</code>
     */
    public int getPageIndex() {
      return pageIndex_;
    }

    public static final int DATA_FIELD_NUMBER = 2;
    private com.google.protobuf.ByteString data_;
    /**
     * <code>optional bytes data = 2;</code>
     */
    public boolean hasData() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>optional bytes data = 2;</code>
     */
    public com.google.protobuf.ByteString getData() {
      return data_;
    }

    public static final int CHECKSUM_FIELD_NUMBER = 3;
    private long checksum_;
    /**
     * <code>optional int64 checksum = 3;</code>
     */
    public boolean hasChecksum() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>optional int64 checksum = 3;</code>
     */
    public long getChecksum() {
      return checksum_;
    }

    public static final int SNAPSHOTID_FIELD_NUMBER = 4;
    private java.util.List<java.lang.Integer> snapshotId_;
    /**
     * <code>repeated int32 snapshotId = 4;</code>
     */
    public java.util.List<java.lang.Integer>
        getSnapshotIdList() {
      return snapshotId_;
    }
    /**
     * <code>repeated int32 snapshotId = 4;</code>
     */
    public int getSnapshotIdCount() {
      return snapshotId_.size();
    }
    /**
     * <code>repeated int32 snapshotId = 4;</code>
     */
    public int getSnapshotId(int index) {
      return snapshotId_.get(index);
    }

    public static final int EMPTY_FIELD_NUMBER = 5;
    private boolean empty_;
    /**
     * <code>required bool empty = 5;</code>
     */
    public boolean hasEmpty() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * <code>required bool empty = 5;</code>
     */
    public boolean getEmpty() {
      return empty_;
    }

    private void initFields() {
      pageIndex_ = 0;
      data_ = com.google.protobuf.ByteString.EMPTY;
      checksum_ = 0L;
      snapshotId_ = java.util.Collections.emptyList();
      empty_ = false;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasPageIndex()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasEmpty()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, pageIndex_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBytes(2, data_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt64(3, checksum_);
      }
      for (int i = 0; i < snapshotId_.size(); i++) {
        output.writeInt32(4, snapshotId_.get(i));
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeBool(5, empty_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, pageIndex_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, data_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(3, checksum_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < snapshotId_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(snapshotId_.get(i));
        }
        size += dataSize;
        size += 1 * getSnapshotIdList().size();
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(5, empty_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static py.proto.Broadcastlog.PBDataPage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static py.proto.Broadcastlog.PBDataPage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBDataPage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static py.proto.Broadcastlog.PBDataPage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBDataPage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static py.proto.Broadcastlog.PBDataPage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBDataPage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static py.proto.Broadcastlog.PBDataPage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBDataPage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static py.proto.Broadcastlog.PBDataPage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(py.proto.Broadcastlog.PBDataPage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code PBDataPage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:PBDataPage)
        py.proto.Broadcastlog.PBDataPageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return py.proto.Broadcastlog.internal_static_PBDataPage_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return py.proto.Broadcastlog.internal_static_PBDataPage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                py.proto.Broadcastlog.PBDataPage.class, py.proto.Broadcastlog.PBDataPage.Builder.class);
      }

      // Construct using py.proto.Broadcastlog.PBDataPage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        pageIndex_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        data_ = com.google.protobuf.ByteString.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000002);
        checksum_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000004);
        snapshotId_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000008);
        empty_ = false;
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return py.proto.Broadcastlog.internal_static_PBDataPage_descriptor;
      }

      public py.proto.Broadcastlog.PBDataPage getDefaultInstanceForType() {
        return py.proto.Broadcastlog.PBDataPage.getDefaultInstance();
      }

      public py.proto.Broadcastlog.PBDataPage build() {
        py.proto.Broadcastlog.PBDataPage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public py.proto.Broadcastlog.PBDataPage buildPartial() {
        py.proto.Broadcastlog.PBDataPage result = new py.proto.Broadcastlog.PBDataPage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.pageIndex_ = pageIndex_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.data_ = data_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.checksum_ = checksum_;
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          snapshotId_ = java.util.Collections.unmodifiableList(snapshotId_);
          bitField0_ = (bitField0_ & ~0x00000008);
        }
        result.snapshotId_ = snapshotId_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000008;
        }
        result.empty_ = empty_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof py.proto.Broadcastlog.PBDataPage) {
          return mergeFrom((py.proto.Broadcastlog.PBDataPage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(py.proto.Broadcastlog.PBDataPage other) {
        if (other == py.proto.Broadcastlog.PBDataPage.getDefaultInstance()) return this;
        if (other.hasPageIndex()) {
          setPageIndex(other.getPageIndex());
        }
        if (other.hasData()) {
          setData(other.getData());
        }
        if (other.hasChecksum()) {
          setChecksum(other.getChecksum());
        }
        if (!other.snapshotId_.isEmpty()) {
          if (snapshotId_.isEmpty()) {
            snapshotId_ = other.snapshotId_;
            bitField0_ = (bitField0_ & ~0x00000008);
          } else {
            ensureSnapshotIdIsMutable();
            snapshotId_.addAll(other.snapshotId_);
          }
          onChanged();
        }
        if (other.hasEmpty()) {
          setEmpty(other.getEmpty());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasPageIndex()) {
          
          return false;
        }
        if (!hasEmpty()) {
          
          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        py.proto.Broadcastlog.PBDataPage parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (py.proto.Broadcastlog.PBDataPage) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int pageIndex_ ;
      /**
       * <code>required int32 pageIndex = 1;</code>
       */
      public boolean hasPageIndex() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required int32 pageIndex = 1;</code>
       */
      public int getPageIndex() {
        return pageIndex_;
      }
      /**
       * <code>required int32 pageIndex = 1;</code>
       */
      public Builder setPageIndex(int value) {
        bitField0_ |= 0x00000001;
        pageIndex_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int32 pageIndex = 1;</code>
       */
      public Builder clearPageIndex() {
        bitField0_ = (bitField0_ & ~0x00000001);
        pageIndex_ = 0;
        onChanged();
        return this;
      }

      private com.google.protobuf.ByteString data_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * <code>optional bytes data = 2;</code>
       */
      public boolean hasData() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>optional bytes data = 2;</code>
       */
      public com.google.protobuf.ByteString getData() {
        return data_;
      }
      /**
       * <code>optional bytes data = 2;</code>
       */
      public Builder setData(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        data_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional bytes data = 2;</code>
       */
      public Builder clearData() {
        bitField0_ = (bitField0_ & ~0x00000002);
        data_ = getDefaultInstance().getData();
        onChanged();
        return this;
      }

      private long checksum_ ;
      /**
       * <code>optional int64 checksum = 3;</code>
       */
      public boolean hasChecksum() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>optional int64 checksum = 3;</code>
       */
      public long getChecksum() {
        return checksum_;
      }
      /**
       * <code>optional int64 checksum = 3;</code>
       */
      public Builder setChecksum(long value) {
        bitField0_ |= 0x00000004;
        checksum_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int64 checksum = 3;</code>
       */
      public Builder clearChecksum() {
        bitField0_ = (bitField0_ & ~0x00000004);
        checksum_ = 0L;
        onChanged();
        return this;
      }

      private java.util.List<java.lang.Integer> snapshotId_ = java.util.Collections.emptyList();
      private void ensureSnapshotIdIsMutable() {
        if (!((bitField0_ & 0x00000008) == 0x00000008)) {
          snapshotId_ = new java.util.LinkedList<java.lang.Integer>(snapshotId_);
          bitField0_ |= 0x00000008;
         }
      }
      /**
       * <code>repeated int32 snapshotId = 4;</code>
       */
      public java.util.List<java.lang.Integer>
          getSnapshotIdList() {
        return java.util.Collections.unmodifiableList(snapshotId_);
      }
      /**
       * <code>repeated int32 snapshotId = 4;</code>
       */
      public int getSnapshotIdCount() {
        return snapshotId_.size();
      }
      /**
       * <code>repeated int32 snapshotId = 4;</code>
       */
      public int getSnapshotId(int index) {
        return snapshotId_.get(index);
      }
      /**
       * <code>repeated int32 snapshotId = 4;</code>
       */
      public Builder setSnapshotId(
          int index, int value) {
        ensureSnapshotIdIsMutable();
        snapshotId_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated int32 snapshotId = 4;</code>
       */
      public Builder addSnapshotId(int value) {
        ensureSnapshotIdIsMutable();
        snapshotId_.add(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated int32 snapshotId = 4;</code>
       */
      public Builder addAllSnapshotId(
          java.lang.Iterable<? extends java.lang.Integer> values) {
        ensureSnapshotIdIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, snapshotId_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated int32 snapshotId = 4;</code>
       */
      public Builder clearSnapshotId() {
        snapshotId_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000008);
        onChanged();
        return this;
      }

      private boolean empty_ ;
      /**
       * <code>required bool empty = 5;</code>
       */
      public boolean hasEmpty() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * <code>required bool empty = 5;</code>
       */
      public boolean getEmpty() {
        return empty_;
      }
      /**
       * <code>required bool empty = 5;</code>
       */
      public Builder setEmpty(boolean value) {
        bitField0_ |= 0x00000010;
        empty_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required bool empty = 5;</code>
       */
      public Builder clearEmpty() {
        bitField0_ = (bitField0_ & ~0x00000010);
        empty_ = false;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:PBDataPage)
    }

    static {
      defaultInstance = new PBDataPage(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:PBDataPage)
  }

  public interface PBPushToSecondariesRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:PBPushToSecondariesRequest)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>required int64 requestId = 1;</code>
     */
    boolean hasRequestId();
    /**
     * <code>required int64 requestId = 1;</code>
     */
    long getRequestId();

    /**
     * <code>required int64 volumeId = 2;</code>
     */
    boolean hasVolumeId();
    /**
     * <code>required int64 volumeId = 2;</code>
     */
    long getVolumeId();

    /**
     * <code>required int32 segIndex = 3;</code>
     */
    boolean hasSegIndex();
    /**
     * <code>required int32 segIndex = 3;</code>
     */
    int getSegIndex();

    /**
     * <code>required .PBMembership membership = 4;</code>
     */
    boolean hasMembership();
    /**
     * <code>required .PBMembership membership = 4;</code>
     */
    py.proto.Broadcastlog.PBMembership getMembership();
    /**
     * <code>required .PBMembership membership = 4;</code>
     */
    py.proto.Broadcastlog.PBMembershipOrBuilder getMembershipOrBuilder();

    /**
     * <code>repeated .PBDataPage dataPage = 5;</code>
     */
    java.util.List<py.proto.Broadcastlog.PBDataPage> 
        getDataPageList();
    /**
     * <code>repeated .PBDataPage dataPage = 5;</code>
     */
    py.proto.Broadcastlog.PBDataPage getDataPage(int index);
    /**
     * <code>repeated .PBDataPage dataPage = 5;</code>
     */
    int getDataPageCount();
    /**
     * <code>repeated .PBDataPage dataPage = 5;</code>
     */
    java.util.List<? extends py.proto.Broadcastlog.PBDataPageOrBuilder> 
        getDataPageOrBuilderList();
    /**
     * <code>repeated .PBDataPage dataPage = 5;</code>
     */
    py.proto.Broadcastlog.PBDataPageOrBuilder getDataPageOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code PBPushToSecondariesRequest}
   */
  public static final class PBPushToSecondariesRequest extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:PBPushToSecondariesRequest)
      PBPushToSecondariesRequestOrBuilder {
    // Use PBPushToSecondariesRequest.newBuilder() to construct.
    private PBPushToSecondariesRequest(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private PBPushToSecondariesRequest(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final PBPushToSecondariesRequest defaultInstance;
    public static PBPushToSecondariesRequest getDefaultInstance() {
      return defaultInstance;
    }

    public PBPushToSecondariesRequest getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private PBPushToSecondariesRequest(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              requestId_ = input.readInt64();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              volumeId_ = input.readInt64();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              segIndex_ = input.readInt32();
              break;
            }
            case 34: {
              py.proto.Broadcastlog.PBMembership.Builder subBuilder = null;
              if (((bitField0_ & 0x00000008) == 0x00000008)) {
                subBuilder = membership_.toBuilder();
              }
              membership_ = input.readMessage(py.proto.Broadcastlog.PBMembership.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(membership_);
                membership_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000008;
              break;
            }
            case 42: {
              if (!((mutable_bitField0_ & 0x00000010) == 0x00000010)) {
                dataPage_ = new java.util.LinkedList<py.proto.Broadcastlog.PBDataPage>();
                mutable_bitField0_ |= 0x00000010;
              }
              dataPage_.add(input.readMessage(py.proto.Broadcastlog.PBDataPage.PARSER, extensionRegistry));
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000010) == 0x00000010)) {
          dataPage_ = java.util.Collections.unmodifiableList(dataPage_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return py.proto.Broadcastlog.internal_static_PBPushToSecondariesRequest_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return py.proto.Broadcastlog.internal_static_PBPushToSecondariesRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              py.proto.Broadcastlog.PBPushToSecondariesRequest.class, py.proto.Broadcastlog.PBPushToSecondariesRequest.Builder.class);
    }

    public static com.google.protobuf.Parser<PBPushToSecondariesRequest> PARSER =
        new com.google.protobuf.AbstractParser<PBPushToSecondariesRequest>() {
      public PBPushToSecondariesRequest parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new PBPushToSecondariesRequest(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser<PBPushToSecondariesRequest> getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int REQUESTID_FIELD_NUMBER = 1;
    private long requestId_;
    /**
     * <code>required int64 requestId = 1;</code>
     */
    public boolean hasRequestId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required int64 requestId = 1;</code>
     */
    public long getRequestId() {
      return requestId_;
    }

    public static final int VOLUMEID_FIELD_NUMBER = 2;
    private long volumeId_;
    /**
     * <code>required int64 volumeId = 2;</code>
     */
    public boolean hasVolumeId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required int64 volumeId = 2;</code>
     */
    public long getVolumeId() {
      return volumeId_;
    }

    public static final int SEGINDEX_FIELD_NUMBER = 3;
    private int segIndex_;
    /**
     * <code>required int32 segIndex = 3;</code>
     */
    public boolean hasSegIndex() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>required int32 segIndex = 3;</code>
     */
    public int getSegIndex() {
      return segIndex_;
    }

    public static final int MEMBERSHIP_FIELD_NUMBER = 4;
    private py.proto.Broadcastlog.PBMembership membership_;
    /**
     * <code>required .PBMembership membership = 4;</code>
     */
    public boolean hasMembership() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * <code>required .PBMembership membership = 4;</code>
     */
    public py.proto.Broadcastlog.PBMembership getMembership() {
      return membership_;
    }
    /**
     * <code>required .PBMembership membership = 4;</code>
     */
    public py.proto.Broadcastlog.PBMembershipOrBuilder getMembershipOrBuilder() {
      return membership_;
    }

    public static final int DATAPAGE_FIELD_NUMBER = 5;
    private java.util.List<py.proto.Broadcastlog.PBDataPage> dataPage_;
    /**
     * <code>repeated .PBDataPage dataPage = 5;</code>
     */
    public java.util.List<py.proto.Broadcastlog.PBDataPage> getDataPageList() {
      return dataPage_;
    }
    /**
     * <code>repeated .PBDataPage dataPage = 5;</code>
     */
    public java.util.List<? extends py.proto.Broadcastlog.PBDataPageOrBuilder> 
        getDataPageOrBuilderList() {
      return dataPage_;
    }
    /**
     * <code>repeated .PBDataPage dataPage = 5;</code>
     */
    public int getDataPageCount() {
      return dataPage_.size();
    }
    /**
     * <code>repeated .PBDataPage dataPage = 5;</code>
     */
    public py.proto.Broadcastlog.PBDataPage getDataPage(int index) {
      return dataPage_.get(index);
    }
    /**
     * <code>repeated .PBDataPage dataPage = 5;</code>
     */
    public py.proto.Broadcastlog.PBDataPageOrBuilder getDataPageOrBuilder(
        int index) {
      return dataPage_.get(index);
    }

    private void initFields() {
      requestId_ = 0L;
      volumeId_ = 0L;
      segIndex_ = 0;
      membership_ = py.proto.Broadcastlog.PBMembership.getDefaultInstance();
      dataPage_ = java.util.Collections.emptyList();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasRequestId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasVolumeId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasSegIndex()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasMembership()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getMembership().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      for (int i = 0; i < getDataPageCount(); i++) {
        if (!getDataPage(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt64(1, requestId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt64(2, volumeId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt32(3, segIndex_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeMessage(4, membership_);
      }
      for (int i = 0; i < dataPage_.size(); i++) {
        output.writeMessage(5, dataPage_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, requestId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(2, volumeId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, segIndex_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, membership_);
      }
      for (int i = 0; i < dataPage_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, dataPage_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static py.proto.Broadcastlog.PBPushToSecondariesRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static py.proto.Broadcastlog.PBPushToSecondariesRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBPushToSecondariesRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static py.proto.Broadcastlog.PBPushToSecondariesRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBPushToSecondariesRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static py.proto.Broadcastlog.PBPushToSecondariesRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBPushToSecondariesRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static py.proto.Broadcastlog.PBPushToSecondariesRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBPushToSecondariesRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static py.proto.Broadcastlog.PBPushToSecondariesRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(py.proto.Broadcastlog.PBPushToSecondariesRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code PBPushToSecondariesRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:PBPushToSecondariesRequest)
        py.proto.Broadcastlog.PBPushToSecondariesRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return py.proto.Broadcastlog.internal_static_PBPushToSecondariesRequest_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return py.proto.Broadcastlog.internal_static_PBPushToSecondariesRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                py.proto.Broadcastlog.PBPushToSecondariesRequest.class, py.proto.Broadcastlog.PBPushToSecondariesRequest.Builder.class);
      }

      // Construct using py.proto.Broadcastlog.PBPushToSecondariesRequest.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getMembershipFieldBuilder();
          getDataPageFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        requestId_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000001);
        volumeId_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000002);
        segIndex_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        if (membershipBuilder_ == null) {
          membership_ = py.proto.Broadcastlog.PBMembership.getDefaultInstance();
        } else {
          membershipBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000008);
        if (dataPageBuilder_ == null) {
          dataPage_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000010);
        } else {
          dataPageBuilder_.clear();
        }
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return py.proto.Broadcastlog.internal_static_PBPushToSecondariesRequest_descriptor;
      }

      public py.proto.Broadcastlog.PBPushToSecondariesRequest getDefaultInstanceForType() {
        return py.proto.Broadcastlog.PBPushToSecondariesRequest.getDefaultInstance();
      }

      public py.proto.Broadcastlog.PBPushToSecondariesRequest build() {
        py.proto.Broadcastlog.PBPushToSecondariesRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public py.proto.Broadcastlog.PBPushToSecondariesRequest buildPartial() {
        py.proto.Broadcastlog.PBPushToSecondariesRequest result = new py.proto.Broadcastlog.PBPushToSecondariesRequest(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.requestId_ = requestId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.volumeId_ = volumeId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.segIndex_ = segIndex_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        if (membershipBuilder_ == null) {
          result.membership_ = membership_;
        } else {
          result.membership_ = membershipBuilder_.build();
        }
        if (dataPageBuilder_ == null) {
          if (((bitField0_ & 0x00000010) == 0x00000010)) {
            dataPage_ = java.util.Collections.unmodifiableList(dataPage_);
            bitField0_ = (bitField0_ & ~0x00000010);
          }
          result.dataPage_ = dataPage_;
        } else {
          result.dataPage_ = dataPageBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof py.proto.Broadcastlog.PBPushToSecondariesRequest) {
          return mergeFrom((py.proto.Broadcastlog.PBPushToSecondariesRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(py.proto.Broadcastlog.PBPushToSecondariesRequest other) {
        if (other == py.proto.Broadcastlog.PBPushToSecondariesRequest.getDefaultInstance()) return this;
        if (other.hasRequestId()) {
          setRequestId(other.getRequestId());
        }
        if (other.hasVolumeId()) {
          setVolumeId(other.getVolumeId());
        }
        if (other.hasSegIndex()) {
          setSegIndex(other.getSegIndex());
        }
        if (other.hasMembership()) {
          mergeMembership(other.getMembership());
        }
        if (dataPageBuilder_ == null) {
          if (!other.dataPage_.isEmpty()) {
            if (dataPage_.isEmpty()) {
              dataPage_ = other.dataPage_;
              bitField0_ = (bitField0_ & ~0x00000010);
            } else {
              ensureDataPageIsMutable();
              dataPage_.addAll(other.dataPage_);
            }
            onChanged();
          }
        } else {
          if (!other.dataPage_.isEmpty()) {
            if (dataPageBuilder_.isEmpty()) {
              dataPageBuilder_.dispose();
              dataPageBuilder_ = null;
              dataPage_ = other.dataPage_;
              bitField0_ = (bitField0_ & ~0x00000010);
              dataPageBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getDataPageFieldBuilder() : null;
            } else {
              dataPageBuilder_.addAllMessages(other.dataPage_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasRequestId()) {
          
          return false;
        }
        if (!hasVolumeId()) {
          
          return false;
        }
        if (!hasSegIndex()) {
          
          return false;
        }
        if (!hasMembership()) {
          
          return false;
        }
        if (!getMembership().isInitialized()) {
          
          return false;
        }
        for (int i = 0; i < getDataPageCount(); i++) {
          if (!getDataPage(i).isInitialized()) {
            
            return false;
          }
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        py.proto.Broadcastlog.PBPushToSecondariesRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (py.proto.Broadcastlog.PBPushToSecondariesRequest) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private long requestId_ ;
      /**
       * <code>required int64 requestId = 1;</code>
       */
      public boolean hasRequestId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required int64 requestId = 1;</code>
       */
      public long getRequestId() {
        return requestId_;
      }
      /**
       * <code>required int64 requestId = 1;</code>
       */
      public Builder setRequestId(long value) {
        bitField0_ |= 0x00000001;
        requestId_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int64 requestId = 1;</code>
       */
      public Builder clearRequestId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        requestId_ = 0L;
        onChanged();
        return this;
      }

      private long volumeId_ ;
      /**
       * <code>required int64 volumeId = 2;</code>
       */
      public boolean hasVolumeId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required int64 volumeId = 2;</code>
       */
      public long getVolumeId() {
        return volumeId_;
      }
      /**
       * <code>required int64 volumeId = 2;</code>
       */
      public Builder setVolumeId(long value) {
        bitField0_ |= 0x00000002;
        volumeId_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int64 volumeId = 2;</code>
       */
      public Builder clearVolumeId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        volumeId_ = 0L;
        onChanged();
        return this;
      }

      private int segIndex_ ;
      /**
       * <code>required int32 segIndex = 3;</code>
       */
      public boolean hasSegIndex() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>required int32 segIndex = 3;</code>
       */
      public int getSegIndex() {
        return segIndex_;
      }
      /**
       * <code>required int32 segIndex = 3;</code>
       */
      public Builder setSegIndex(int value) {
        bitField0_ |= 0x00000004;
        segIndex_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int32 segIndex = 3;</code>
       */
      public Builder clearSegIndex() {
        bitField0_ = (bitField0_ & ~0x00000004);
        segIndex_ = 0;
        onChanged();
        return this;
      }

      private py.proto.Broadcastlog.PBMembership membership_ = py.proto.Broadcastlog.PBMembership.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          py.proto.Broadcastlog.PBMembership, py.proto.Broadcastlog.PBMembership.Builder, py.proto.Broadcastlog.PBMembershipOrBuilder> membershipBuilder_;
      /**
       * <code>required .PBMembership membership = 4;</code>
       */
      public boolean hasMembership() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * <code>required .PBMembership membership = 4;</code>
       */
      public py.proto.Broadcastlog.PBMembership getMembership() {
        if (membershipBuilder_ == null) {
          return membership_;
        } else {
          return membershipBuilder_.getMessage();
        }
      }
      /**
       * <code>required .PBMembership membership = 4;</code>
       */
      public Builder setMembership(py.proto.Broadcastlog.PBMembership value) {
        if (membershipBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          membership_ = value;
          onChanged();
        } else {
          membershipBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       * <code>required .PBMembership membership = 4;</code>
       */
      public Builder setMembership(
          py.proto.Broadcastlog.PBMembership.Builder builderForValue) {
        if (membershipBuilder_ == null) {
          membership_ = builderForValue.build();
          onChanged();
        } else {
          membershipBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       * <code>required .PBMembership membership = 4;</code>
       */
      public Builder mergeMembership(py.proto.Broadcastlog.PBMembership value) {
        if (membershipBuilder_ == null) {
          if (((bitField0_ & 0x00000008) == 0x00000008) &&
              membership_ != py.proto.Broadcastlog.PBMembership.getDefaultInstance()) {
            membership_ =
              py.proto.Broadcastlog.PBMembership.newBuilder(membership_).mergeFrom(value).buildPartial();
          } else {
            membership_ = value;
          }
          onChanged();
        } else {
          membershipBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       * <code>required .PBMembership membership = 4;</code>
       */
      public Builder clearMembership() {
        if (membershipBuilder_ == null) {
          membership_ = py.proto.Broadcastlog.PBMembership.getDefaultInstance();
          onChanged();
        } else {
          membershipBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }
      /**
       * <code>required .PBMembership membership = 4;</code>
       */
      public py.proto.Broadcastlog.PBMembership.Builder getMembershipBuilder() {
        bitField0_ |= 0x00000008;
        onChanged();
        return getMembershipFieldBuilder().getBuilder();
      }
      /**
       * <code>required .PBMembership membership = 4;</code>
       */
      public py.proto.Broadcastlog.PBMembershipOrBuilder getMembershipOrBuilder() {
        if (membershipBuilder_ != null) {
          return membershipBuilder_.getMessageOrBuilder();
        } else {
          return membership_;
        }
      }
      /**
       * <code>required .PBMembership membership = 4;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          py.proto.Broadcastlog.PBMembership, py.proto.Broadcastlog.PBMembership.Builder, py.proto.Broadcastlog.PBMembershipOrBuilder> 
          getMembershipFieldBuilder() {
        if (membershipBuilder_ == null) {
          membershipBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              py.proto.Broadcastlog.PBMembership, py.proto.Broadcastlog.PBMembership.Builder, py.proto.Broadcastlog.PBMembershipOrBuilder>(
                  getMembership(),
                  getParentForChildren(),
                  isClean());
          membership_ = null;
        }
        return membershipBuilder_;
      }

      private java.util.List<py.proto.Broadcastlog.PBDataPage> dataPage_ =
        java.util.Collections.emptyList();
      private void ensureDataPageIsMutable() {
        if (!((bitField0_ & 0x00000010) == 0x00000010)) {
          dataPage_ = new java.util.LinkedList<py.proto.Broadcastlog.PBDataPage>(dataPage_);
          bitField0_ |= 0x00000010;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          py.proto.Broadcastlog.PBDataPage, py.proto.Broadcastlog.PBDataPage.Builder, py.proto.Broadcastlog.PBDataPageOrBuilder> dataPageBuilder_;

      /**
       * <code>repeated .PBDataPage dataPage = 5;</code>
       */
      public java.util.List<py.proto.Broadcastlog.PBDataPage> getDataPageList() {
        if (dataPageBuilder_ == null) {
          return java.util.Collections.unmodifiableList(dataPage_);
        } else {
          return dataPageBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .PBDataPage dataPage = 5;</code>
       */
      public int getDataPageCount() {
        if (dataPageBuilder_ == null) {
          return dataPage_.size();
        } else {
          return dataPageBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .PBDataPage dataPage = 5;</code>
       */
      public py.proto.Broadcastlog.PBDataPage getDataPage(int index) {
        if (dataPageBuilder_ == null) {
          return dataPage_.get(index);
        } else {
          return dataPageBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .PBDataPage dataPage = 5;</code>
       */
      public Builder setDataPage(
          int index, py.proto.Broadcastlog.PBDataPage value) {
        if (dataPageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureDataPageIsMutable();
          dataPage_.set(index, value);
          onChanged();
        } else {
          dataPageBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .PBDataPage dataPage = 5;</code>
       */
      public Builder setDataPage(
          int index, py.proto.Broadcastlog.PBDataPage.Builder builderForValue) {
        if (dataPageBuilder_ == null) {
          ensureDataPageIsMutable();
          dataPage_.set(index, builderForValue.build());
          onChanged();
        } else {
          dataPageBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .PBDataPage dataPage = 5;</code>
       */
      public Builder addDataPage(py.proto.Broadcastlog.PBDataPage value) {
        if (dataPageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureDataPageIsMutable();
          dataPage_.add(value);
          onChanged();
        } else {
          dataPageBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .PBDataPage dataPage = 5;</code>
       */
      public Builder addDataPage(
          int index, py.proto.Broadcastlog.PBDataPage value) {
        if (dataPageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureDataPageIsMutable();
          dataPage_.add(index, value);
          onChanged();
        } else {
          dataPageBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .PBDataPage dataPage = 5;</code>
       */
      public Builder addDataPage(
          py.proto.Broadcastlog.PBDataPage.Builder builderForValue) {
        if (dataPageBuilder_ == null) {
          ensureDataPageIsMutable();
          dataPage_.add(builderForValue.build());
          onChanged();
        } else {
          dataPageBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .PBDataPage dataPage = 5;</code>
       */
      public Builder addDataPage(
          int index, py.proto.Broadcastlog.PBDataPage.Builder builderForValue) {
        if (dataPageBuilder_ == null) {
          ensureDataPageIsMutable();
          dataPage_.add(index, builderForValue.build());
          onChanged();
        } else {
          dataPageBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .PBDataPage dataPage = 5;</code>
       */
      public Builder addAllDataPage(
          java.lang.Iterable<? extends py.proto.Broadcastlog.PBDataPage> values) {
        if (dataPageBuilder_ == null) {
          ensureDataPageIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, dataPage_);
          onChanged();
        } else {
          dataPageBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .PBDataPage dataPage = 5;</code>
       */
      public Builder clearDataPage() {
        if (dataPageBuilder_ == null) {
          dataPage_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000010);
          onChanged();
        } else {
          dataPageBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .PBDataPage dataPage = 5;</code>
       */
      public Builder removeDataPage(int index) {
        if (dataPageBuilder_ == null) {
          ensureDataPageIsMutable();
          dataPage_.remove(index);
          onChanged();
        } else {
          dataPageBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .PBDataPage dataPage = 5;</code>
       */
      public py.proto.Broadcastlog.PBDataPage.Builder getDataPageBuilder(
          int index) {
        return getDataPageFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .PBDataPage dataPage = 5;</code>
       */
      public py.proto.Broadcastlog.PBDataPageOrBuilder getDataPageOrBuilder(
          int index) {
        if (dataPageBuilder_ == null) {
          return dataPage_.get(index);  } else {
          return dataPageBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .PBDataPage dataPage = 5;</code>
       */
      public java.util.List<? extends py.proto.Broadcastlog.PBDataPageOrBuilder> 
           getDataPageOrBuilderList() {
        if (dataPageBuilder_ != null) {
          return dataPageBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(dataPage_);
        }
      }
      /**
       * <code>repeated .PBDataPage dataPage = 5;</code>
       */
      public py.proto.Broadcastlog.PBDataPage.Builder addDataPageBuilder() {
        return getDataPageFieldBuilder().addBuilder(
            py.proto.Broadcastlog.PBDataPage.getDefaultInstance());
      }
      /**
       * <code>repeated .PBDataPage dataPage = 5;</code>
       */
      public py.proto.Broadcastlog.PBDataPage.Builder addDataPageBuilder(
          int index) {
        return getDataPageFieldBuilder().addBuilder(
            index, py.proto.Broadcastlog.PBDataPage.getDefaultInstance());
      }
      /**
       * <code>repeated .PBDataPage dataPage = 5;</code>
       */
      public java.util.List<py.proto.Broadcastlog.PBDataPage.Builder> 
           getDataPageBuilderList() {
        return getDataPageFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          py.proto.Broadcastlog.PBDataPage, py.proto.Broadcastlog.PBDataPage.Builder, py.proto.Broadcastlog.PBDataPageOrBuilder> 
          getDataPageFieldBuilder() {
        if (dataPageBuilder_ == null) {
          dataPageBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              py.proto.Broadcastlog.PBDataPage, py.proto.Broadcastlog.PBDataPage.Builder, py.proto.Broadcastlog.PBDataPageOrBuilder>(
                  dataPage_,
                  ((bitField0_ & 0x00000010) == 0x00000010),
                  getParentForChildren(),
                  isClean());
          dataPage_ = null;
        }
        return dataPageBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:PBPushToSecondariesRequest)
    }

    static {
      defaultInstance = new PBPushToSecondariesRequest(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:PBPushToSecondariesRequest)
  }

  public interface PBPushToSecondariesResponseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:PBPushToSecondariesResponse)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>required int64 requestId = 1;</code>
     */
    boolean hasRequestId();
    /**
     * <code>required int64 requestId = 1;</code>
     */
    long getRequestId();

    /**
     * <code>required bool success = 2;</code>
     */
    boolean hasSuccess();
    /**
     * <code>required bool success = 2;</code>
     */
    boolean getSuccess();
  }
  /**
   * Protobuf type {@code PBPushToSecondariesResponse}
   */
  public static final class PBPushToSecondariesResponse extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:PBPushToSecondariesResponse)
      PBPushToSecondariesResponseOrBuilder {
    // Use PBPushToSecondariesResponse.newBuilder() to construct.
    private PBPushToSecondariesResponse(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private PBPushToSecondariesResponse(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final PBPushToSecondariesResponse defaultInstance;
    public static PBPushToSecondariesResponse getDefaultInstance() {
      return defaultInstance;
    }

    public PBPushToSecondariesResponse getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private PBPushToSecondariesResponse(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              requestId_ = input.readInt64();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              success_ = input.readBool();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return py.proto.Broadcastlog.internal_static_PBPushToSecondariesResponse_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return py.proto.Broadcastlog.internal_static_PBPushToSecondariesResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              py.proto.Broadcastlog.PBPushToSecondariesResponse.class, py.proto.Broadcastlog.PBPushToSecondariesResponse.Builder.class);
    }

    public static com.google.protobuf.Parser<PBPushToSecondariesResponse> PARSER =
        new com.google.protobuf.AbstractParser<PBPushToSecondariesResponse>() {
      public PBPushToSecondariesResponse parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new PBPushToSecondariesResponse(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser<PBPushToSecondariesResponse> getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int REQUESTID_FIELD_NUMBER = 1;
    private long requestId_;
    /**
     * <code>required int64 requestId = 1;</code>
     */
    public boolean hasRequestId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required int64 requestId = 1;</code>
     */
    public long getRequestId() {
      return requestId_;
    }

    public static final int SUCCESS_FIELD_NUMBER = 2;
    private boolean success_;
    /**
     * <code>required bool success = 2;</code>
     */
    public boolean hasSuccess() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required bool success = 2;</code>
     */
    public boolean getSuccess() {
      return success_;
    }

    private void initFields() {
      requestId_ = 0L;
      success_ = false;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasRequestId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasSuccess()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt64(1, requestId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBool(2, success_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, requestId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(2, success_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static py.proto.Broadcastlog.PBPushToSecondariesResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static py.proto.Broadcastlog.PBPushToSecondariesResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBPushToSecondariesResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static py.proto.Broadcastlog.PBPushToSecondariesResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBPushToSecondariesResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static py.proto.Broadcastlog.PBPushToSecondariesResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBPushToSecondariesResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static py.proto.Broadcastlog.PBPushToSecondariesResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBPushToSecondariesResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static py.proto.Broadcastlog.PBPushToSecondariesResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(py.proto.Broadcastlog.PBPushToSecondariesResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code PBPushToSecondariesResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:PBPushToSecondariesResponse)
        py.proto.Broadcastlog.PBPushToSecondariesResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return py.proto.Broadcastlog.internal_static_PBPushToSecondariesResponse_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return py.proto.Broadcastlog.internal_static_PBPushToSecondariesResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                py.proto.Broadcastlog.PBPushToSecondariesResponse.class, py.proto.Broadcastlog.PBPushToSecondariesResponse.Builder.class);
      }

      // Construct using py.proto.Broadcastlog.PBPushToSecondariesResponse.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        requestId_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000001);
        success_ = false;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return py.proto.Broadcastlog.internal_static_PBPushToSecondariesResponse_descriptor;
      }

      public py.proto.Broadcastlog.PBPushToSecondariesResponse getDefaultInstanceForType() {
        return py.proto.Broadcastlog.PBPushToSecondariesResponse.getDefaultInstance();
      }

      public py.proto.Broadcastlog.PBPushToSecondariesResponse build() {
        py.proto.Broadcastlog.PBPushToSecondariesResponse result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public py.proto.Broadcastlog.PBPushToSecondariesResponse buildPartial() {
        py.proto.Broadcastlog.PBPushToSecondariesResponse result = new py.proto.Broadcastlog.PBPushToSecondariesResponse(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.requestId_ = requestId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.success_ = success_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof py.proto.Broadcastlog.PBPushToSecondariesResponse) {
          return mergeFrom((py.proto.Broadcastlog.PBPushToSecondariesResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(py.proto.Broadcastlog.PBPushToSecondariesResponse other) {
        if (other == py.proto.Broadcastlog.PBPushToSecondariesResponse.getDefaultInstance()) return this;
        if (other.hasRequestId()) {
          setRequestId(other.getRequestId());
        }
        if (other.hasSuccess()) {
          setSuccess(other.getSuccess());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasRequestId()) {
          
          return false;
        }
        if (!hasSuccess()) {
          
          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        py.proto.Broadcastlog.PBPushToSecondariesResponse parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (py.proto.Broadcastlog.PBPushToSecondariesResponse) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private long requestId_ ;
      /**
       * <code>required int64 requestId = 1;</code>
       */
      public boolean hasRequestId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required int64 requestId = 1;</code>
       */
      public long getRequestId() {
        return requestId_;
      }
      /**
       * <code>required int64 requestId = 1;</code>
       */
      public Builder setRequestId(long value) {
        bitField0_ |= 0x00000001;
        requestId_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int64 requestId = 1;</code>
       */
      public Builder clearRequestId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        requestId_ = 0L;
        onChanged();
        return this;
      }

      private boolean success_ ;
      /**
       * <code>required bool success = 2;</code>
       */
      public boolean hasSuccess() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required bool success = 2;</code>
       */
      public boolean getSuccess() {
        return success_;
      }
      /**
       * <code>required bool success = 2;</code>
       */
      public Builder setSuccess(boolean value) {
        bitField0_ |= 0x00000002;
        success_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required bool success = 2;</code>
       */
      public Builder clearSuccess() {
        bitField0_ = (bitField0_ & ~0x00000002);
        success_ = false;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:PBPushToSecondariesResponse)
    }

    static {
      defaultInstance = new PBPushToSecondariesResponse(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:PBPushToSecondariesResponse)
  }

  public interface PBCopyPageRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:PBCopyPageRequest)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>required int64 requestId = 1;</code>
     */
    boolean hasRequestId();
    /**
     * <code>required int64 requestId = 1;</code>
     */
    long getRequestId();

    /**
     * <code>required int64 sessionId = 2;</code>
     */
    boolean hasSessionId();
    /**
     * <code>required int64 sessionId = 2;</code>
     */
    long getSessionId();

    /**
     * <code>required int64 volumeId = 3;</code>
     */
    boolean hasVolumeId();
    /**
     * <code>required int64 volumeId = 3;</code>
     */
    long getVolumeId();

    /**
     * <code>required int32 segIndex = 4;</code>
     */
    boolean hasSegIndex();
    /**
     * <code>required int32 segIndex = 4;</code>
     */
    int getSegIndex();

    /**
     * <code>required int32 copyPageUnitIndex = 5;</code>
     */
    boolean hasCopyPageUnitIndex();
    /**
     * <code>required int32 copyPageUnitIndex = 5;</code>
     */
    int getCopyPageUnitIndex();

    /**
     * <code>required int32 errorCount = 6;</code>
     */
    boolean hasErrorCount();
    /**
     * <code>required int32 errorCount = 6;</code>
     */
    int getErrorCount();

    /**
     * <code>required int32 snapshotVersion = 7;</code>
     */
    boolean hasSnapshotVersion();
    /**
     * <code>required int32 snapshotVersion = 7;</code>
     */
    int getSnapshotVersion();

    /**
     * <code>required .PBCopyPageStatus status = 8;</code>
     */
    boolean hasStatus();
    /**
     * <code>required .PBCopyPageStatus status = 8;</code>
     */
    py.proto.Broadcastlog.PBCopyPageStatus getStatus();

    /**
     * <code>required .PBMembership membership = 9;</code>
     */
    boolean hasMembership();
    /**
     * <code>required .PBMembership membership = 9;</code>
     */
    py.proto.Broadcastlog.PBMembership getMembership();
    /**
     * <code>required .PBMembership membership = 9;</code>
     */
    py.proto.Broadcastlog.PBMembershipOrBuilder getMembershipOrBuilder();

    /**
     * <code>repeated .PBPageRequest pageRequests = 10;</code>
     */
    java.util.List<py.proto.Broadcastlog.PBPageRequest> 
        getPageRequestsList();
    /**
     * <code>repeated .PBPageRequest pageRequests = 10;</code>
     */
    py.proto.Broadcastlog.PBPageRequest getPageRequests(int index);
    /**
     * <code>repeated .PBPageRequest pageRequests = 10;</code>
     */
    int getPageRequestsCount();
    /**
     * <code>repeated .PBPageRequest pageRequests = 10;</code>
     */
    java.util.List<? extends py.proto.Broadcastlog.PBPageRequestOrBuilder> 
        getPageRequestsOrBuilderList();
    /**
     * <code>repeated .PBPageRequest pageRequests = 10;</code>
     */
    py.proto.Broadcastlog.PBPageRequestOrBuilder getPageRequestsOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code PBCopyPageRequest}
   */
  public static final class PBCopyPageRequest extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:PBCopyPageRequest)
      PBCopyPageRequestOrBuilder {
    // Use PBCopyPageRequest.newBuilder() to construct.
    private PBCopyPageRequest(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private PBCopyPageRequest(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final PBCopyPageRequest defaultInstance;
    public static PBCopyPageRequest getDefaultInstance() {
      return defaultInstance;
    }

    public PBCopyPageRequest getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private PBCopyPageRequest(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              requestId_ = input.readInt64();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              sessionId_ = input.readInt64();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              volumeId_ = input.readInt64();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              segIndex_ = input.readInt32();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              copyPageUnitIndex_ = input.readInt32();
              break;
            }
            case 48: {
              bitField0_ |= 0x00000020;
              errorCount_ = input.readInt32();
              break;
            }
            case 56: {
              bitField0_ |= 0x00000040;
              snapshotVersion_ = input.readInt32();
              break;
            }
            case 64: {
              int rawValue = input.readEnum();
              py.proto.Broadcastlog.PBCopyPageStatus value = py.proto.Broadcastlog.PBCopyPageStatus.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(8, rawValue);
              } else {
                bitField0_ |= 0x00000080;
                status_ = value;
              }
              break;
            }
            case 74: {
              py.proto.Broadcastlog.PBMembership.Builder subBuilder = null;
              if (((bitField0_ & 0x00000100) == 0x00000100)) {
                subBuilder = membership_.toBuilder();
              }
              membership_ = input.readMessage(py.proto.Broadcastlog.PBMembership.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(membership_);
                membership_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000100;
              break;
            }
            case 82: {
              if (!((mutable_bitField0_ & 0x00000200) == 0x00000200)) {
                pageRequests_ = new java.util.LinkedList<py.proto.Broadcastlog.PBPageRequest>();
                mutable_bitField0_ |= 0x00000200;
              }
              pageRequests_.add(input.readMessage(py.proto.Broadcastlog.PBPageRequest.PARSER, extensionRegistry));
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000200) == 0x00000200)) {
          pageRequests_ = java.util.Collections.unmodifiableList(pageRequests_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return py.proto.Broadcastlog.internal_static_PBCopyPageRequest_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return py.proto.Broadcastlog.internal_static_PBCopyPageRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              py.proto.Broadcastlog.PBCopyPageRequest.class, py.proto.Broadcastlog.PBCopyPageRequest.Builder.class);
    }

    public static com.google.protobuf.Parser<PBCopyPageRequest> PARSER =
        new com.google.protobuf.AbstractParser<PBCopyPageRequest>() {
      public PBCopyPageRequest parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new PBCopyPageRequest(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser<PBCopyPageRequest> getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int REQUESTID_FIELD_NUMBER = 1;
    private long requestId_;
    /**
     * <code>required int64 requestId = 1;</code>
     */
    public boolean hasRequestId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required int64 requestId = 1;</code>
     */
    public long getRequestId() {
      return requestId_;
    }

    public static final int SESSIONID_FIELD_NUMBER = 2;
    private long sessionId_;
    /**
     * <code>required int64 sessionId = 2;</code>
     */
    public boolean hasSessionId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required int64 sessionId = 2;</code>
     */
    public long getSessionId() {
      return sessionId_;
    }

    public static final int VOLUMEID_FIELD_NUMBER = 3;
    private long volumeId_;
    /**
     * <code>required int64 volumeId = 3;</code>
     */
    public boolean hasVolumeId() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>required int64 volumeId = 3;</code>
     */
    public long getVolumeId() {
      return volumeId_;
    }

    public static final int SEGINDEX_FIELD_NUMBER = 4;
    private int segIndex_;
    /**
     * <code>required int32 segIndex = 4;</code>
     */
    public boolean hasSegIndex() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * <code>required int32 segIndex = 4;</code>
     */
    public int getSegIndex() {
      return segIndex_;
    }

    public static final int COPYPAGEUNITINDEX_FIELD_NUMBER = 5;
    private int copyPageUnitIndex_;
    /**
     * <code>required int32 copyPageUnitIndex = 5;</code>
     */
    public boolean hasCopyPageUnitIndex() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * <code>required int32 copyPageUnitIndex = 5;</code>
     */
    public int getCopyPageUnitIndex() {
      return copyPageUnitIndex_;
    }

    public static final int ERRORCOUNT_FIELD_NUMBER = 6;
    private int errorCount_;
    /**
     * <code>required int32 errorCount = 6;</code>
     */
    public boolean hasErrorCount() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     * <code>required int32 errorCount = 6;</code>
     */
    public int getErrorCount() {
      return errorCount_;
    }

    public static final int SNAPSHOTVERSION_FIELD_NUMBER = 7;
    private int snapshotVersion_;
    /**
     * <code>required int32 snapshotVersion = 7;</code>
     */
    public boolean hasSnapshotVersion() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    /**
     * <code>required int32 snapshotVersion = 7;</code>
     */
    public int getSnapshotVersion() {
      return snapshotVersion_;
    }

    public static final int STATUS_FIELD_NUMBER = 8;
    private py.proto.Broadcastlog.PBCopyPageStatus status_;
    /**
     * <code>required .PBCopyPageStatus status = 8;</code>
     */
    public boolean hasStatus() {
      return ((bitField0_ & 0x00000080) == 0x00000080);
    }
    /**
     * <code>required .PBCopyPageStatus status = 8;</code>
     */
    public py.proto.Broadcastlog.PBCopyPageStatus getStatus() {
      return status_;
    }

    public static final int MEMBERSHIP_FIELD_NUMBER = 9;
    private py.proto.Broadcastlog.PBMembership membership_;
    /**
     * <code>required .PBMembership membership = 9;</code>
     */
    public boolean hasMembership() {
      return ((bitField0_ & 0x00000100) == 0x00000100);
    }
    /**
     * <code>required .PBMembership membership = 9;</code>
     */
    public py.proto.Broadcastlog.PBMembership getMembership() {
      return membership_;
    }
    /**
     * <code>required .PBMembership membership = 9;</code>
     */
    public py.proto.Broadcastlog.PBMembershipOrBuilder getMembershipOrBuilder() {
      return membership_;
    }

    public static final int PAGEREQUESTS_FIELD_NUMBER = 10;
    private java.util.List<py.proto.Broadcastlog.PBPageRequest> pageRequests_;
    /**
     * <code>repeated .PBPageRequest pageRequests = 10;</code>
     */
    public java.util.List<py.proto.Broadcastlog.PBPageRequest> getPageRequestsList() {
      return pageRequests_;
    }
    /**
     * <code>repeated .PBPageRequest pageRequests = 10;</code>
     */
    public java.util.List<? extends py.proto.Broadcastlog.PBPageRequestOrBuilder> 
        getPageRequestsOrBuilderList() {
      return pageRequests_;
    }
    /**
     * <code>repeated .PBPageRequest pageRequests = 10;</code>
     */
    public int getPageRequestsCount() {
      return pageRequests_.size();
    }
    /**
     * <code>repeated .PBPageRequest pageRequests = 10;</code>
     */
    public py.proto.Broadcastlog.PBPageRequest getPageRequests(int index) {
      return pageRequests_.get(index);
    }
    /**
     * <code>repeated .PBPageRequest pageRequests = 10;</code>
     */
    public py.proto.Broadcastlog.PBPageRequestOrBuilder getPageRequestsOrBuilder(
        int index) {
      return pageRequests_.get(index);
    }

    private void initFields() {
      requestId_ = 0L;
      sessionId_ = 0L;
      volumeId_ = 0L;
      segIndex_ = 0;
      copyPageUnitIndex_ = 0;
      errorCount_ = 0;
      snapshotVersion_ = 0;
      status_ = py.proto.Broadcastlog.PBCopyPageStatus.CopyPageStart;
      membership_ = py.proto.Broadcastlog.PBMembership.getDefaultInstance();
      pageRequests_ = java.util.Collections.emptyList();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasRequestId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasSessionId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasVolumeId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasSegIndex()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasCopyPageUnitIndex()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasErrorCount()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasSnapshotVersion()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasStatus()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasMembership()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getMembership().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      for (int i = 0; i < getPageRequestsCount(); i++) {
        if (!getPageRequests(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt64(1, requestId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt64(2, sessionId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt64(3, volumeId_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeInt32(4, segIndex_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeInt32(5, copyPageUnitIndex_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeInt32(6, errorCount_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        output.writeInt32(7, snapshotVersion_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        output.writeEnum(8, status_.getNumber());
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        output.writeMessage(9, membership_);
      }
      for (int i = 0; i < pageRequests_.size(); i++) {
        output.writeMessage(10, pageRequests_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, requestId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(2, sessionId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(3, volumeId_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, segIndex_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(5, copyPageUnitIndex_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(6, errorCount_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(7, snapshotVersion_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(8, status_.getNumber());
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(9, membership_);
      }
      for (int i = 0; i < pageRequests_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(10, pageRequests_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static py.proto.Broadcastlog.PBCopyPageRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static py.proto.Broadcastlog.PBCopyPageRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBCopyPageRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static py.proto.Broadcastlog.PBCopyPageRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBCopyPageRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static py.proto.Broadcastlog.PBCopyPageRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBCopyPageRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static py.proto.Broadcastlog.PBCopyPageRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBCopyPageRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static py.proto.Broadcastlog.PBCopyPageRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(py.proto.Broadcastlog.PBCopyPageRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code PBCopyPageRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:PBCopyPageRequest)
        py.proto.Broadcastlog.PBCopyPageRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return py.proto.Broadcastlog.internal_static_PBCopyPageRequest_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return py.proto.Broadcastlog.internal_static_PBCopyPageRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                py.proto.Broadcastlog.PBCopyPageRequest.class, py.proto.Broadcastlog.PBCopyPageRequest.Builder.class);
      }

      // Construct using py.proto.Broadcastlog.PBCopyPageRequest.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getMembershipFieldBuilder();
          getPageRequestsFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        requestId_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000001);
        sessionId_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000002);
        volumeId_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000004);
        segIndex_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        copyPageUnitIndex_ = 0;
        bitField0_ = (bitField0_ & ~0x00000010);
        errorCount_ = 0;
        bitField0_ = (bitField0_ & ~0x00000020);
        snapshotVersion_ = 0;
        bitField0_ = (bitField0_ & ~0x00000040);
        status_ = py.proto.Broadcastlog.PBCopyPageStatus.CopyPageStart;
        bitField0_ = (bitField0_ & ~0x00000080);
        if (membershipBuilder_ == null) {
          membership_ = py.proto.Broadcastlog.PBMembership.getDefaultInstance();
        } else {
          membershipBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000100);
        if (pageRequestsBuilder_ == null) {
          pageRequests_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000200);
        } else {
          pageRequestsBuilder_.clear();
        }
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return py.proto.Broadcastlog.internal_static_PBCopyPageRequest_descriptor;
      }

      public py.proto.Broadcastlog.PBCopyPageRequest getDefaultInstanceForType() {
        return py.proto.Broadcastlog.PBCopyPageRequest.getDefaultInstance();
      }

      public py.proto.Broadcastlog.PBCopyPageRequest build() {
        py.proto.Broadcastlog.PBCopyPageRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public py.proto.Broadcastlog.PBCopyPageRequest buildPartial() {
        py.proto.Broadcastlog.PBCopyPageRequest result = new py.proto.Broadcastlog.PBCopyPageRequest(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.requestId_ = requestId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.sessionId_ = sessionId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.volumeId_ = volumeId_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.segIndex_ = segIndex_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.copyPageUnitIndex_ = copyPageUnitIndex_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        result.errorCount_ = errorCount_;
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000040;
        }
        result.snapshotVersion_ = snapshotVersion_;
        if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
          to_bitField0_ |= 0x00000080;
        }
        result.status_ = status_;
        if (((from_bitField0_ & 0x00000100) == 0x00000100)) {
          to_bitField0_ |= 0x00000100;
        }
        if (membershipBuilder_ == null) {
          result.membership_ = membership_;
        } else {
          result.membership_ = membershipBuilder_.build();
        }
        if (pageRequestsBuilder_ == null) {
          if (((bitField0_ & 0x00000200) == 0x00000200)) {
            pageRequests_ = java.util.Collections.unmodifiableList(pageRequests_);
            bitField0_ = (bitField0_ & ~0x00000200);
          }
          result.pageRequests_ = pageRequests_;
        } else {
          result.pageRequests_ = pageRequestsBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof py.proto.Broadcastlog.PBCopyPageRequest) {
          return mergeFrom((py.proto.Broadcastlog.PBCopyPageRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(py.proto.Broadcastlog.PBCopyPageRequest other) {
        if (other == py.proto.Broadcastlog.PBCopyPageRequest.getDefaultInstance()) return this;
        if (other.hasRequestId()) {
          setRequestId(other.getRequestId());
        }
        if (other.hasSessionId()) {
          setSessionId(other.getSessionId());
        }
        if (other.hasVolumeId()) {
          setVolumeId(other.getVolumeId());
        }
        if (other.hasSegIndex()) {
          setSegIndex(other.getSegIndex());
        }
        if (other.hasCopyPageUnitIndex()) {
          setCopyPageUnitIndex(other.getCopyPageUnitIndex());
        }
        if (other.hasErrorCount()) {
          setErrorCount(other.getErrorCount());
        }
        if (other.hasSnapshotVersion()) {
          setSnapshotVersion(other.getSnapshotVersion());
        }
        if (other.hasStatus()) {
          setStatus(other.getStatus());
        }
        if (other.hasMembership()) {
          mergeMembership(other.getMembership());
        }
        if (pageRequestsBuilder_ == null) {
          if (!other.pageRequests_.isEmpty()) {
            if (pageRequests_.isEmpty()) {
              pageRequests_ = other.pageRequests_;
              bitField0_ = (bitField0_ & ~0x00000200);
            } else {
              ensurePageRequestsIsMutable();
              pageRequests_.addAll(other.pageRequests_);
            }
            onChanged();
          }
        } else {
          if (!other.pageRequests_.isEmpty()) {
            if (pageRequestsBuilder_.isEmpty()) {
              pageRequestsBuilder_.dispose();
              pageRequestsBuilder_ = null;
              pageRequests_ = other.pageRequests_;
              bitField0_ = (bitField0_ & ~0x00000200);
              pageRequestsBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getPageRequestsFieldBuilder() : null;
            } else {
              pageRequestsBuilder_.addAllMessages(other.pageRequests_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasRequestId()) {
          
          return false;
        }
        if (!hasSessionId()) {
          
          return false;
        }
        if (!hasVolumeId()) {
          
          return false;
        }
        if (!hasSegIndex()) {
          
          return false;
        }
        if (!hasCopyPageUnitIndex()) {
          
          return false;
        }
        if (!hasErrorCount()) {
          
          return false;
        }
        if (!hasSnapshotVersion()) {
          
          return false;
        }
        if (!hasStatus()) {
          
          return false;
        }
        if (!hasMembership()) {
          
          return false;
        }
        if (!getMembership().isInitialized()) {
          
          return false;
        }
        for (int i = 0; i < getPageRequestsCount(); i++) {
          if (!getPageRequests(i).isInitialized()) {
            
            return false;
          }
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        py.proto.Broadcastlog.PBCopyPageRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (py.proto.Broadcastlog.PBCopyPageRequest) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private long requestId_ ;
      /**
       * <code>required int64 requestId = 1;</code>
       */
      public boolean hasRequestId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required int64 requestId = 1;</code>
       */
      public long getRequestId() {
        return requestId_;
      }
      /**
       * <code>required int64 requestId = 1;</code>
       */
      public Builder setRequestId(long value) {
        bitField0_ |= 0x00000001;
        requestId_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int64 requestId = 1;</code>
       */
      public Builder clearRequestId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        requestId_ = 0L;
        onChanged();
        return this;
      }

      private long sessionId_ ;
      /**
       * <code>required int64 sessionId = 2;</code>
       */
      public boolean hasSessionId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required int64 sessionId = 2;</code>
       */
      public long getSessionId() {
        return sessionId_;
      }
      /**
       * <code>required int64 sessionId = 2;</code>
       */
      public Builder setSessionId(long value) {
        bitField0_ |= 0x00000002;
        sessionId_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int64 sessionId = 2;</code>
       */
      public Builder clearSessionId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        sessionId_ = 0L;
        onChanged();
        return this;
      }

      private long volumeId_ ;
      /**
       * <code>required int64 volumeId = 3;</code>
       */
      public boolean hasVolumeId() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>required int64 volumeId = 3;</code>
       */
      public long getVolumeId() {
        return volumeId_;
      }
      /**
       * <code>required int64 volumeId = 3;</code>
       */
      public Builder setVolumeId(long value) {
        bitField0_ |= 0x00000004;
        volumeId_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int64 volumeId = 3;</code>
       */
      public Builder clearVolumeId() {
        bitField0_ = (bitField0_ & ~0x00000004);
        volumeId_ = 0L;
        onChanged();
        return this;
      }

      private int segIndex_ ;
      /**
       * <code>required int32 segIndex = 4;</code>
       */
      public boolean hasSegIndex() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * <code>required int32 segIndex = 4;</code>
       */
      public int getSegIndex() {
        return segIndex_;
      }
      /**
       * <code>required int32 segIndex = 4;</code>
       */
      public Builder setSegIndex(int value) {
        bitField0_ |= 0x00000008;
        segIndex_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int32 segIndex = 4;</code>
       */
      public Builder clearSegIndex() {
        bitField0_ = (bitField0_ & ~0x00000008);
        segIndex_ = 0;
        onChanged();
        return this;
      }

      private int copyPageUnitIndex_ ;
      /**
       * <code>required int32 copyPageUnitIndex = 5;</code>
       */
      public boolean hasCopyPageUnitIndex() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * <code>required int32 copyPageUnitIndex = 5;</code>
       */
      public int getCopyPageUnitIndex() {
        return copyPageUnitIndex_;
      }
      /**
       * <code>required int32 copyPageUnitIndex = 5;</code>
       */
      public Builder setCopyPageUnitIndex(int value) {
        bitField0_ |= 0x00000010;
        copyPageUnitIndex_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int32 copyPageUnitIndex = 5;</code>
       */
      public Builder clearCopyPageUnitIndex() {
        bitField0_ = (bitField0_ & ~0x00000010);
        copyPageUnitIndex_ = 0;
        onChanged();
        return this;
      }

      private int errorCount_ ;
      /**
       * <code>required int32 errorCount = 6;</code>
       */
      public boolean hasErrorCount() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * <code>required int32 errorCount = 6;</code>
       */
      public int getErrorCount() {
        return errorCount_;
      }
      /**
       * <code>required int32 errorCount = 6;</code>
       */
      public Builder setErrorCount(int value) {
        bitField0_ |= 0x00000020;
        errorCount_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int32 errorCount = 6;</code>
       */
      public Builder clearErrorCount() {
        bitField0_ = (bitField0_ & ~0x00000020);
        errorCount_ = 0;
        onChanged();
        return this;
      }

      private int snapshotVersion_ ;
      /**
       * <code>required int32 snapshotVersion = 7;</code>
       */
      public boolean hasSnapshotVersion() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       * <code>required int32 snapshotVersion = 7;</code>
       */
      public int getSnapshotVersion() {
        return snapshotVersion_;
      }
      /**
       * <code>required int32 snapshotVersion = 7;</code>
       */
      public Builder setSnapshotVersion(int value) {
        bitField0_ |= 0x00000040;
        snapshotVersion_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int32 snapshotVersion = 7;</code>
       */
      public Builder clearSnapshotVersion() {
        bitField0_ = (bitField0_ & ~0x00000040);
        snapshotVersion_ = 0;
        onChanged();
        return this;
      }

      private py.proto.Broadcastlog.PBCopyPageStatus status_ = py.proto.Broadcastlog.PBCopyPageStatus.CopyPageStart;
      /**
       * <code>required .PBCopyPageStatus status = 8;</code>
       */
      public boolean hasStatus() {
        return ((bitField0_ & 0x00000080) == 0x00000080);
      }
      /**
       * <code>required .PBCopyPageStatus status = 8;</code>
       */
      public py.proto.Broadcastlog.PBCopyPageStatus getStatus() {
        return status_;
      }
      /**
       * <code>required .PBCopyPageStatus status = 8;</code>
       */
      public Builder setStatus(py.proto.Broadcastlog.PBCopyPageStatus value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000080;
        status_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required .PBCopyPageStatus status = 8;</code>
       */
      public Builder clearStatus() {
        bitField0_ = (bitField0_ & ~0x00000080);
        status_ = py.proto.Broadcastlog.PBCopyPageStatus.CopyPageStart;
        onChanged();
        return this;
      }

      private py.proto.Broadcastlog.PBMembership membership_ = py.proto.Broadcastlog.PBMembership.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          py.proto.Broadcastlog.PBMembership, py.proto.Broadcastlog.PBMembership.Builder, py.proto.Broadcastlog.PBMembershipOrBuilder> membershipBuilder_;
      /**
       * <code>required .PBMembership membership = 9;</code>
       */
      public boolean hasMembership() {
        return ((bitField0_ & 0x00000100) == 0x00000100);
      }
      /**
       * <code>required .PBMembership membership = 9;</code>
       */
      public py.proto.Broadcastlog.PBMembership getMembership() {
        if (membershipBuilder_ == null) {
          return membership_;
        } else {
          return membershipBuilder_.getMessage();
        }
      }
      /**
       * <code>required .PBMembership membership = 9;</code>
       */
      public Builder setMembership(py.proto.Broadcastlog.PBMembership value) {
        if (membershipBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          membership_ = value;
          onChanged();
        } else {
          membershipBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000100;
        return this;
      }
      /**
       * <code>required .PBMembership membership = 9;</code>
       */
      public Builder setMembership(
          py.proto.Broadcastlog.PBMembership.Builder builderForValue) {
        if (membershipBuilder_ == null) {
          membership_ = builderForValue.build();
          onChanged();
        } else {
          membershipBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000100;
        return this;
      }
      /**
       * <code>required .PBMembership membership = 9;</code>
       */
      public Builder mergeMembership(py.proto.Broadcastlog.PBMembership value) {
        if (membershipBuilder_ == null) {
          if (((bitField0_ & 0x00000100) == 0x00000100) &&
              membership_ != py.proto.Broadcastlog.PBMembership.getDefaultInstance()) {
            membership_ =
              py.proto.Broadcastlog.PBMembership.newBuilder(membership_).mergeFrom(value).buildPartial();
          } else {
            membership_ = value;
          }
          onChanged();
        } else {
          membershipBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000100;
        return this;
      }
      /**
       * <code>required .PBMembership membership = 9;</code>
       */
      public Builder clearMembership() {
        if (membershipBuilder_ == null) {
          membership_ = py.proto.Broadcastlog.PBMembership.getDefaultInstance();
          onChanged();
        } else {
          membershipBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000100);
        return this;
      }
      /**
       * <code>required .PBMembership membership = 9;</code>
       */
      public py.proto.Broadcastlog.PBMembership.Builder getMembershipBuilder() {
        bitField0_ |= 0x00000100;
        onChanged();
        return getMembershipFieldBuilder().getBuilder();
      }
      /**
       * <code>required .PBMembership membership = 9;</code>
       */
      public py.proto.Broadcastlog.PBMembershipOrBuilder getMembershipOrBuilder() {
        if (membershipBuilder_ != null) {
          return membershipBuilder_.getMessageOrBuilder();
        } else {
          return membership_;
        }
      }
      /**
       * <code>required .PBMembership membership = 9;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          py.proto.Broadcastlog.PBMembership, py.proto.Broadcastlog.PBMembership.Builder, py.proto.Broadcastlog.PBMembershipOrBuilder> 
          getMembershipFieldBuilder() {
        if (membershipBuilder_ == null) {
          membershipBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              py.proto.Broadcastlog.PBMembership, py.proto.Broadcastlog.PBMembership.Builder, py.proto.Broadcastlog.PBMembershipOrBuilder>(
                  getMembership(),
                  getParentForChildren(),
                  isClean());
          membership_ = null;
        }
        return membershipBuilder_;
      }

      private java.util.List<py.proto.Broadcastlog.PBPageRequest> pageRequests_ =
        java.util.Collections.emptyList();
      private void ensurePageRequestsIsMutable() {
        if (!((bitField0_ & 0x00000200) == 0x00000200)) {
          pageRequests_ = new java.util.LinkedList<py.proto.Broadcastlog.PBPageRequest>(pageRequests_);
          bitField0_ |= 0x00000200;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          py.proto.Broadcastlog.PBPageRequest, py.proto.Broadcastlog.PBPageRequest.Builder, py.proto.Broadcastlog.PBPageRequestOrBuilder> pageRequestsBuilder_;

      /**
       * <code>repeated .PBPageRequest pageRequests = 10;</code>
       */
      public java.util.List<py.proto.Broadcastlog.PBPageRequest> getPageRequestsList() {
        if (pageRequestsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(pageRequests_);
        } else {
          return pageRequestsBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .PBPageRequest pageRequests = 10;</code>
       */
      public int getPageRequestsCount() {
        if (pageRequestsBuilder_ == null) {
          return pageRequests_.size();
        } else {
          return pageRequestsBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .PBPageRequest pageRequests = 10;</code>
       */
      public py.proto.Broadcastlog.PBPageRequest getPageRequests(int index) {
        if (pageRequestsBuilder_ == null) {
          return pageRequests_.get(index);
        } else {
          return pageRequestsBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .PBPageRequest pageRequests = 10;</code>
       */
      public Builder setPageRequests(
          int index, py.proto.Broadcastlog.PBPageRequest value) {
        if (pageRequestsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePageRequestsIsMutable();
          pageRequests_.set(index, value);
          onChanged();
        } else {
          pageRequestsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .PBPageRequest pageRequests = 10;</code>
       */
      public Builder setPageRequests(
          int index, py.proto.Broadcastlog.PBPageRequest.Builder builderForValue) {
        if (pageRequestsBuilder_ == null) {
          ensurePageRequestsIsMutable();
          pageRequests_.set(index, builderForValue.build());
          onChanged();
        } else {
          pageRequestsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .PBPageRequest pageRequests = 10;</code>
       */
      public Builder addPageRequests(py.proto.Broadcastlog.PBPageRequest value) {
        if (pageRequestsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePageRequestsIsMutable();
          pageRequests_.add(value);
          onChanged();
        } else {
          pageRequestsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .PBPageRequest pageRequests = 10;</code>
       */
      public Builder addPageRequests(
          int index, py.proto.Broadcastlog.PBPageRequest value) {
        if (pageRequestsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePageRequestsIsMutable();
          pageRequests_.add(index, value);
          onChanged();
        } else {
          pageRequestsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .PBPageRequest pageRequests = 10;</code>
       */
      public Builder addPageRequests(
          py.proto.Broadcastlog.PBPageRequest.Builder builderForValue) {
        if (pageRequestsBuilder_ == null) {
          ensurePageRequestsIsMutable();
          pageRequests_.add(builderForValue.build());
          onChanged();
        } else {
          pageRequestsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .PBPageRequest pageRequests = 10;</code>
       */
      public Builder addPageRequests(
          int index, py.proto.Broadcastlog.PBPageRequest.Builder builderForValue) {
        if (pageRequestsBuilder_ == null) {
          ensurePageRequestsIsMutable();
          pageRequests_.add(index, builderForValue.build());
          onChanged();
        } else {
          pageRequestsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .PBPageRequest pageRequests = 10;</code>
       */
      public Builder addAllPageRequests(
          java.lang.Iterable<? extends py.proto.Broadcastlog.PBPageRequest> values) {
        if (pageRequestsBuilder_ == null) {
          ensurePageRequestsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, pageRequests_);
          onChanged();
        } else {
          pageRequestsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .PBPageRequest pageRequests = 10;</code>
       */
      public Builder clearPageRequests() {
        if (pageRequestsBuilder_ == null) {
          pageRequests_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000200);
          onChanged();
        } else {
          pageRequestsBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .PBPageRequest pageRequests = 10;</code>
       */
      public Builder removePageRequests(int index) {
        if (pageRequestsBuilder_ == null) {
          ensurePageRequestsIsMutable();
          pageRequests_.remove(index);
          onChanged();
        } else {
          pageRequestsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .PBPageRequest pageRequests = 10;</code>
       */
      public py.proto.Broadcastlog.PBPageRequest.Builder getPageRequestsBuilder(
          int index) {
        return getPageRequestsFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .PBPageRequest pageRequests = 10;</code>
       */
      public py.proto.Broadcastlog.PBPageRequestOrBuilder getPageRequestsOrBuilder(
          int index) {
        if (pageRequestsBuilder_ == null) {
          return pageRequests_.get(index);  } else {
          return pageRequestsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .PBPageRequest pageRequests = 10;</code>
       */
      public java.util.List<? extends py.proto.Broadcastlog.PBPageRequestOrBuilder> 
           getPageRequestsOrBuilderList() {
        if (pageRequestsBuilder_ != null) {
          return pageRequestsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(pageRequests_);
        }
      }
      /**
       * <code>repeated .PBPageRequest pageRequests = 10;</code>
       */
      public py.proto.Broadcastlog.PBPageRequest.Builder addPageRequestsBuilder() {
        return getPageRequestsFieldBuilder().addBuilder(
            py.proto.Broadcastlog.PBPageRequest.getDefaultInstance());
      }
      /**
       * <code>repeated .PBPageRequest pageRequests = 10;</code>
       */
      public py.proto.Broadcastlog.PBPageRequest.Builder addPageRequestsBuilder(
          int index) {
        return getPageRequestsFieldBuilder().addBuilder(
            index, py.proto.Broadcastlog.PBPageRequest.getDefaultInstance());
      }
      /**
       * <code>repeated .PBPageRequest pageRequests = 10;</code>
       */
      public java.util.List<py.proto.Broadcastlog.PBPageRequest.Builder> 
           getPageRequestsBuilderList() {
        return getPageRequestsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          py.proto.Broadcastlog.PBPageRequest, py.proto.Broadcastlog.PBPageRequest.Builder, py.proto.Broadcastlog.PBPageRequestOrBuilder> 
          getPageRequestsFieldBuilder() {
        if (pageRequestsBuilder_ == null) {
          pageRequestsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              py.proto.Broadcastlog.PBPageRequest, py.proto.Broadcastlog.PBPageRequest.Builder, py.proto.Broadcastlog.PBPageRequestOrBuilder>(
                  pageRequests_,
                  ((bitField0_ & 0x00000200) == 0x00000200),
                  getParentForChildren(),
                  isClean());
          pageRequests_ = null;
        }
        return pageRequestsBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:PBCopyPageRequest)
    }

    static {
      defaultInstance = new PBCopyPageRequest(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:PBCopyPageRequest)
  }

  public interface PBPageRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:PBPageRequest)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>required int32 pageIndex = 1;</code>
     */
    boolean hasPageIndex();
    /**
     * <code>required int32 pageIndex = 1;</code>
     */
    int getPageIndex();

    /**
     * <code>required int32 currentSnapshotId = 2;</code>
     *
     * <pre>
     * represent a original page, a shadow page or several shadow pages which share the same data.
     * </pre>
     */
    boolean hasCurrentSnapshotId();
    /**
     * <code>required int32 currentSnapshotId = 2;</code>
     *
     * <pre>
     * represent a original page, a shadow page or several shadow pages which share the same data.
     * </pre>
     */
    int getCurrentSnapshotId();

    /**
     * <code>required int64 checksum = 3;</code>
     */
    boolean hasChecksum();
    /**
     * <code>required int64 checksum = 3;</code>
     */
    long getChecksum();

    /**
     * <code>required int64 lastLogId = 4;</code>
     */
    boolean hasLastLogId();
    /**
     * <code>required int64 lastLogId = 4;</code>
     */
    long getLastLogId();

    /**
     * <code>required bytes data = 5;</code>
     */
    boolean hasData();
    /**
     * <code>required bytes data = 5;</code>
     */
    com.google.protobuf.ByteString getData();

    /**
     * <code>repeated .PBShadowItem shadowTable = 6;</code>
     *
     * <pre>
     * when the page is original, the field contains all shadow pages ID.
     * </pre>
     */
    java.util.List<py.proto.Broadcastlog.PBShadowItem> 
        getShadowTableList();
    /**
     * <code>repeated .PBShadowItem shadowTable = 6;</code>
     *
     * <pre>
     * when the page is original, the field contains all shadow pages ID.
     * </pre>
     */
    py.proto.Broadcastlog.PBShadowItem getShadowTable(int index);
    /**
     * <code>repeated .PBShadowItem shadowTable = 6;</code>
     *
     * <pre>
     * when the page is original, the field contains all shadow pages ID.
     * </pre>
     */
    int getShadowTableCount();
    /**
     * <code>repeated .PBShadowItem shadowTable = 6;</code>
     *
     * <pre>
     * when the page is original, the field contains all shadow pages ID.
     * </pre>
     */
    java.util.List<? extends py.proto.Broadcastlog.PBShadowItemOrBuilder> 
        getShadowTableOrBuilderList();
    /**
     * <code>repeated .PBShadowItem shadowTable = 6;</code>
     *
     * <pre>
     * when the page is original, the field contains all shadow pages ID.
     * </pre>
     */
    py.proto.Broadcastlog.PBShadowItemOrBuilder getShadowTableOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code PBPageRequest}
   */
  public static final class PBPageRequest extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:PBPageRequest)
      PBPageRequestOrBuilder {
    // Use PBPageRequest.newBuilder() to construct.
    private PBPageRequest(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private PBPageRequest(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final PBPageRequest defaultInstance;
    public static PBPageRequest getDefaultInstance() {
      return defaultInstance;
    }

    public PBPageRequest getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private PBPageRequest(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              pageIndex_ = input.readInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              currentSnapshotId_ = input.readInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              checksum_ = input.readInt64();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              lastLogId_ = input.readInt64();
              break;
            }
            case 42: {
              bitField0_ |= 0x00000010;
              data_ = input.readBytes();
              break;
            }
            case 50: {
              if (!((mutable_bitField0_ & 0x00000020) == 0x00000020)) {
                shadowTable_ = new java.util.LinkedList<py.proto.Broadcastlog.PBShadowItem>();
                mutable_bitField0_ |= 0x00000020;
              }
              shadowTable_.add(input.readMessage(py.proto.Broadcastlog.PBShadowItem.PARSER, extensionRegistry));
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000020) == 0x00000020)) {
          shadowTable_ = java.util.Collections.unmodifiableList(shadowTable_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return py.proto.Broadcastlog.internal_static_PBPageRequest_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return py.proto.Broadcastlog.internal_static_PBPageRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              py.proto.Broadcastlog.PBPageRequest.class, py.proto.Broadcastlog.PBPageRequest.Builder.class);
    }

    public static com.google.protobuf.Parser<PBPageRequest> PARSER =
        new com.google.protobuf.AbstractParser<PBPageRequest>() {
      public PBPageRequest parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new PBPageRequest(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser<PBPageRequest> getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int PAGEINDEX_FIELD_NUMBER = 1;
    private int pageIndex_;
    /**
     * <code>required int32 pageIndex = 1;</code>
     */
    public boolean hasPageIndex() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required int32 pageIndex = 1;</code>
     */
    public int getPageIndex() {
      return pageIndex_;
    }

    public static final int CURRENTSNAPSHOTID_FIELD_NUMBER = 2;
    private int currentSnapshotId_;
    /**
     * <code>required int32 currentSnapshotId = 2;</code>
     *
     * <pre>
     * represent a original page, a shadow page or several shadow pages which share the same data.
     * </pre>
     */
    public boolean hasCurrentSnapshotId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required int32 currentSnapshotId = 2;</code>
     *
     * <pre>
     * represent a original page, a shadow page or several shadow pages which share the same data.
     * </pre>
     */
    public int getCurrentSnapshotId() {
      return currentSnapshotId_;
    }

    public static final int CHECKSUM_FIELD_NUMBER = 3;
    private long checksum_;
    /**
     * <code>required int64 checksum = 3;</code>
     */
    public boolean hasChecksum() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>required int64 checksum = 3;</code>
     */
    public long getChecksum() {
      return checksum_;
    }

    public static final int LASTLOGID_FIELD_NUMBER = 4;
    private long lastLogId_;
    /**
     * <code>required int64 lastLogId = 4;</code>
     */
    public boolean hasLastLogId() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * <code>required int64 lastLogId = 4;</code>
     */
    public long getLastLogId() {
      return lastLogId_;
    }

    public static final int DATA_FIELD_NUMBER = 5;
    private com.google.protobuf.ByteString data_;
    /**
     * <code>required bytes data = 5;</code>
     */
    public boolean hasData() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * <code>required bytes data = 5;</code>
     */
    public com.google.protobuf.ByteString getData() {
      return data_;
    }

    public static final int SHADOWTABLE_FIELD_NUMBER = 6;
    private java.util.List<py.proto.Broadcastlog.PBShadowItem> shadowTable_;
    /**
     * <code>repeated .PBShadowItem shadowTable = 6;</code>
     *
     * <pre>
     * when the page is original, the field contains all shadow pages ID.
     * </pre>
     */
    public java.util.List<py.proto.Broadcastlog.PBShadowItem> getShadowTableList() {
      return shadowTable_;
    }
    /**
     * <code>repeated .PBShadowItem shadowTable = 6;</code>
     *
     * <pre>
     * when the page is original, the field contains all shadow pages ID.
     * </pre>
     */
    public java.util.List<? extends py.proto.Broadcastlog.PBShadowItemOrBuilder> 
        getShadowTableOrBuilderList() {
      return shadowTable_;
    }
    /**
     * <code>repeated .PBShadowItem shadowTable = 6;</code>
     *
     * <pre>
     * when the page is original, the field contains all shadow pages ID.
     * </pre>
     */
    public int getShadowTableCount() {
      return shadowTable_.size();
    }
    /**
     * <code>repeated .PBShadowItem shadowTable = 6;</code>
     *
     * <pre>
     * when the page is original, the field contains all shadow pages ID.
     * </pre>
     */
    public py.proto.Broadcastlog.PBShadowItem getShadowTable(int index) {
      return shadowTable_.get(index);
    }
    /**
     * <code>repeated .PBShadowItem shadowTable = 6;</code>
     *
     * <pre>
     * when the page is original, the field contains all shadow pages ID.
     * </pre>
     */
    public py.proto.Broadcastlog.PBShadowItemOrBuilder getShadowTableOrBuilder(
        int index) {
      return shadowTable_.get(index);
    }

    private void initFields() {
      pageIndex_ = 0;
      currentSnapshotId_ = 0;
      checksum_ = 0L;
      lastLogId_ = 0L;
      data_ = com.google.protobuf.ByteString.EMPTY;
      shadowTable_ = java.util.Collections.emptyList();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasPageIndex()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasCurrentSnapshotId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasChecksum()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasLastLogId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasData()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, pageIndex_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, currentSnapshotId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt64(3, checksum_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeInt64(4, lastLogId_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeBytes(5, data_);
      }
      for (int i = 0; i < shadowTable_.size(); i++) {
        output.writeMessage(6, shadowTable_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, pageIndex_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, currentSnapshotId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(3, checksum_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(4, lastLogId_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(5, data_);
      }
      for (int i = 0; i < shadowTable_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(6, shadowTable_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static py.proto.Broadcastlog.PBPageRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static py.proto.Broadcastlog.PBPageRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBPageRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static py.proto.Broadcastlog.PBPageRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBPageRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static py.proto.Broadcastlog.PBPageRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBPageRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static py.proto.Broadcastlog.PBPageRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBPageRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static py.proto.Broadcastlog.PBPageRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(py.proto.Broadcastlog.PBPageRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code PBPageRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:PBPageRequest)
        py.proto.Broadcastlog.PBPageRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return py.proto.Broadcastlog.internal_static_PBPageRequest_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return py.proto.Broadcastlog.internal_static_PBPageRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                py.proto.Broadcastlog.PBPageRequest.class, py.proto.Broadcastlog.PBPageRequest.Builder.class);
      }

      // Construct using py.proto.Broadcastlog.PBPageRequest.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getShadowTableFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        pageIndex_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        currentSnapshotId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        checksum_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000004);
        lastLogId_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000008);
        data_ = com.google.protobuf.ByteString.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000010);
        if (shadowTableBuilder_ == null) {
          shadowTable_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000020);
        } else {
          shadowTableBuilder_.clear();
        }
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return py.proto.Broadcastlog.internal_static_PBPageRequest_descriptor;
      }

      public py.proto.Broadcastlog.PBPageRequest getDefaultInstanceForType() {
        return py.proto.Broadcastlog.PBPageRequest.getDefaultInstance();
      }

      public py.proto.Broadcastlog.PBPageRequest build() {
        py.proto.Broadcastlog.PBPageRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public py.proto.Broadcastlog.PBPageRequest buildPartial() {
        py.proto.Broadcastlog.PBPageRequest result = new py.proto.Broadcastlog.PBPageRequest(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.pageIndex_ = pageIndex_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.currentSnapshotId_ = currentSnapshotId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.checksum_ = checksum_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.lastLogId_ = lastLogId_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.data_ = data_;
        if (shadowTableBuilder_ == null) {
          if (((bitField0_ & 0x00000020) == 0x00000020)) {
            shadowTable_ = java.util.Collections.unmodifiableList(shadowTable_);
            bitField0_ = (bitField0_ & ~0x00000020);
          }
          result.shadowTable_ = shadowTable_;
        } else {
          result.shadowTable_ = shadowTableBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof py.proto.Broadcastlog.PBPageRequest) {
          return mergeFrom((py.proto.Broadcastlog.PBPageRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(py.proto.Broadcastlog.PBPageRequest other) {
        if (other == py.proto.Broadcastlog.PBPageRequest.getDefaultInstance()) return this;
        if (other.hasPageIndex()) {
          setPageIndex(other.getPageIndex());
        }
        if (other.hasCurrentSnapshotId()) {
          setCurrentSnapshotId(other.getCurrentSnapshotId());
        }
        if (other.hasChecksum()) {
          setChecksum(other.getChecksum());
        }
        if (other.hasLastLogId()) {
          setLastLogId(other.getLastLogId());
        }
        if (other.hasData()) {
          setData(other.getData());
        }
        if (shadowTableBuilder_ == null) {
          if (!other.shadowTable_.isEmpty()) {
            if (shadowTable_.isEmpty()) {
              shadowTable_ = other.shadowTable_;
              bitField0_ = (bitField0_ & ~0x00000020);
            } else {
              ensureShadowTableIsMutable();
              shadowTable_.addAll(other.shadowTable_);
            }
            onChanged();
          }
        } else {
          if (!other.shadowTable_.isEmpty()) {
            if (shadowTableBuilder_.isEmpty()) {
              shadowTableBuilder_.dispose();
              shadowTableBuilder_ = null;
              shadowTable_ = other.shadowTable_;
              bitField0_ = (bitField0_ & ~0x00000020);
              shadowTableBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getShadowTableFieldBuilder() : null;
            } else {
              shadowTableBuilder_.addAllMessages(other.shadowTable_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasPageIndex()) {
          
          return false;
        }
        if (!hasCurrentSnapshotId()) {
          
          return false;
        }
        if (!hasChecksum()) {
          
          return false;
        }
        if (!hasLastLogId()) {
          
          return false;
        }
        if (!hasData()) {
          
          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        py.proto.Broadcastlog.PBPageRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (py.proto.Broadcastlog.PBPageRequest) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int pageIndex_ ;
      /**
       * <code>required int32 pageIndex = 1;</code>
       */
      public boolean hasPageIndex() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required int32 pageIndex = 1;</code>
       */
      public int getPageIndex() {
        return pageIndex_;
      }
      /**
       * <code>required int32 pageIndex = 1;</code>
       */
      public Builder setPageIndex(int value) {
        bitField0_ |= 0x00000001;
        pageIndex_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int32 pageIndex = 1;</code>
       */
      public Builder clearPageIndex() {
        bitField0_ = (bitField0_ & ~0x00000001);
        pageIndex_ = 0;
        onChanged();
        return this;
      }

      private int currentSnapshotId_ ;
      /**
       * <code>required int32 currentSnapshotId = 2;</code>
       *
       * <pre>
       * represent a original page, a shadow page or several shadow pages which share the same data.
       * </pre>
       */
      public boolean hasCurrentSnapshotId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required int32 currentSnapshotId = 2;</code>
       *
       * <pre>
       * represent a original page, a shadow page or several shadow pages which share the same data.
       * </pre>
       */
      public int getCurrentSnapshotId() {
        return currentSnapshotId_;
      }
      /**
       * <code>required int32 currentSnapshotId = 2;</code>
       *
       * <pre>
       * represent a original page, a shadow page or several shadow pages which share the same data.
       * </pre>
       */
      public Builder setCurrentSnapshotId(int value) {
        bitField0_ |= 0x00000002;
        currentSnapshotId_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int32 currentSnapshotId = 2;</code>
       *
       * <pre>
       * represent a original page, a shadow page or several shadow pages which share the same data.
       * </pre>
       */
      public Builder clearCurrentSnapshotId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        currentSnapshotId_ = 0;
        onChanged();
        return this;
      }

      private long checksum_ ;
      /**
       * <code>required int64 checksum = 3;</code>
       */
      public boolean hasChecksum() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>required int64 checksum = 3;</code>
       */
      public long getChecksum() {
        return checksum_;
      }
      /**
       * <code>required int64 checksum = 3;</code>
       */
      public Builder setChecksum(long value) {
        bitField0_ |= 0x00000004;
        checksum_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int64 checksum = 3;</code>
       */
      public Builder clearChecksum() {
        bitField0_ = (bitField0_ & ~0x00000004);
        checksum_ = 0L;
        onChanged();
        return this;
      }

      private long lastLogId_ ;
      /**
       * <code>required int64 lastLogId = 4;</code>
       */
      public boolean hasLastLogId() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * <code>required int64 lastLogId = 4;</code>
       */
      public long getLastLogId() {
        return lastLogId_;
      }
      /**
       * <code>required int64 lastLogId = 4;</code>
       */
      public Builder setLastLogId(long value) {
        bitField0_ |= 0x00000008;
        lastLogId_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int64 lastLogId = 4;</code>
       */
      public Builder clearLastLogId() {
        bitField0_ = (bitField0_ & ~0x00000008);
        lastLogId_ = 0L;
        onChanged();
        return this;
      }

      private com.google.protobuf.ByteString data_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * <code>required bytes data = 5;</code>
       */
      public boolean hasData() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * <code>required bytes data = 5;</code>
       */
      public com.google.protobuf.ByteString getData() {
        return data_;
      }
      /**
       * <code>required bytes data = 5;</code>
       */
      public Builder setData(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000010;
        data_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required bytes data = 5;</code>
       */
      public Builder clearData() {
        bitField0_ = (bitField0_ & ~0x00000010);
        data_ = getDefaultInstance().getData();
        onChanged();
        return this;
      }

      private java.util.List<py.proto.Broadcastlog.PBShadowItem> shadowTable_ =
        java.util.Collections.emptyList();
      private void ensureShadowTableIsMutable() {
        if (!((bitField0_ & 0x00000020) == 0x00000020)) {
          shadowTable_ = new java.util.LinkedList<py.proto.Broadcastlog.PBShadowItem>(shadowTable_);
          bitField0_ |= 0x00000020;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          py.proto.Broadcastlog.PBShadowItem, py.proto.Broadcastlog.PBShadowItem.Builder, py.proto.Broadcastlog.PBShadowItemOrBuilder> shadowTableBuilder_;

      /**
       * <code>repeated .PBShadowItem shadowTable = 6;</code>
       *
       * <pre>
       * when the page is original, the field contains all shadow pages ID.
       * </pre>
       */
      public java.util.List<py.proto.Broadcastlog.PBShadowItem> getShadowTableList() {
        if (shadowTableBuilder_ == null) {
          return java.util.Collections.unmodifiableList(shadowTable_);
        } else {
          return shadowTableBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .PBShadowItem shadowTable = 6;</code>
       *
       * <pre>
       * when the page is original, the field contains all shadow pages ID.
       * </pre>
       */
      public int getShadowTableCount() {
        if (shadowTableBuilder_ == null) {
          return shadowTable_.size();
        } else {
          return shadowTableBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .PBShadowItem shadowTable = 6;</code>
       *
       * <pre>
       * when the page is original, the field contains all shadow pages ID.
       * </pre>
       */
      public py.proto.Broadcastlog.PBShadowItem getShadowTable(int index) {
        if (shadowTableBuilder_ == null) {
          return shadowTable_.get(index);
        } else {
          return shadowTableBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .PBShadowItem shadowTable = 6;</code>
       *
       * <pre>
       * when the page is original, the field contains all shadow pages ID.
       * </pre>
       */
      public Builder setShadowTable(
          int index, py.proto.Broadcastlog.PBShadowItem value) {
        if (shadowTableBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureShadowTableIsMutable();
          shadowTable_.set(index, value);
          onChanged();
        } else {
          shadowTableBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .PBShadowItem shadowTable = 6;</code>
       *
       * <pre>
       * when the page is original, the field contains all shadow pages ID.
       * </pre>
       */
      public Builder setShadowTable(
          int index, py.proto.Broadcastlog.PBShadowItem.Builder builderForValue) {
        if (shadowTableBuilder_ == null) {
          ensureShadowTableIsMutable();
          shadowTable_.set(index, builderForValue.build());
          onChanged();
        } else {
          shadowTableBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .PBShadowItem shadowTable = 6;</code>
       *
       * <pre>
       * when the page is original, the field contains all shadow pages ID.
       * </pre>
       */
      public Builder addShadowTable(py.proto.Broadcastlog.PBShadowItem value) {
        if (shadowTableBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureShadowTableIsMutable();
          shadowTable_.add(value);
          onChanged();
        } else {
          shadowTableBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .PBShadowItem shadowTable = 6;</code>
       *
       * <pre>
       * when the page is original, the field contains all shadow pages ID.
       * </pre>
       */
      public Builder addShadowTable(
          int index, py.proto.Broadcastlog.PBShadowItem value) {
        if (shadowTableBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureShadowTableIsMutable();
          shadowTable_.add(index, value);
          onChanged();
        } else {
          shadowTableBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .PBShadowItem shadowTable = 6;</code>
       *
       * <pre>
       * when the page is original, the field contains all shadow pages ID.
       * </pre>
       */
      public Builder addShadowTable(
          py.proto.Broadcastlog.PBShadowItem.Builder builderForValue) {
        if (shadowTableBuilder_ == null) {
          ensureShadowTableIsMutable();
          shadowTable_.add(builderForValue.build());
          onChanged();
        } else {
          shadowTableBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .PBShadowItem shadowTable = 6;</code>
       *
       * <pre>
       * when the page is original, the field contains all shadow pages ID.
       * </pre>
       */
      public Builder addShadowTable(
          int index, py.proto.Broadcastlog.PBShadowItem.Builder builderForValue) {
        if (shadowTableBuilder_ == null) {
          ensureShadowTableIsMutable();
          shadowTable_.add(index, builderForValue.build());
          onChanged();
        } else {
          shadowTableBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .PBShadowItem shadowTable = 6;</code>
       *
       * <pre>
       * when the page is original, the field contains all shadow pages ID.
       * </pre>
       */
      public Builder addAllShadowTable(
          java.lang.Iterable<? extends py.proto.Broadcastlog.PBShadowItem> values) {
        if (shadowTableBuilder_ == null) {
          ensureShadowTableIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, shadowTable_);
          onChanged();
        } else {
          shadowTableBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .PBShadowItem shadowTable = 6;</code>
       *
       * <pre>
       * when the page is original, the field contains all shadow pages ID.
       * </pre>
       */
      public Builder clearShadowTable() {
        if (shadowTableBuilder_ == null) {
          shadowTable_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000020);
          onChanged();
        } else {
          shadowTableBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .PBShadowItem shadowTable = 6;</code>
       *
       * <pre>
       * when the page is original, the field contains all shadow pages ID.
       * </pre>
       */
      public Builder removeShadowTable(int index) {
        if (shadowTableBuilder_ == null) {
          ensureShadowTableIsMutable();
          shadowTable_.remove(index);
          onChanged();
        } else {
          shadowTableBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .PBShadowItem shadowTable = 6;</code>
       *
       * <pre>
       * when the page is original, the field contains all shadow pages ID.
       * </pre>
       */
      public py.proto.Broadcastlog.PBShadowItem.Builder getShadowTableBuilder(
          int index) {
        return getShadowTableFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .PBShadowItem shadowTable = 6;</code>
       *
       * <pre>
       * when the page is original, the field contains all shadow pages ID.
       * </pre>
       */
      public py.proto.Broadcastlog.PBShadowItemOrBuilder getShadowTableOrBuilder(
          int index) {
        if (shadowTableBuilder_ == null) {
          return shadowTable_.get(index);  } else {
          return shadowTableBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .PBShadowItem shadowTable = 6;</code>
       *
       * <pre>
       * when the page is original, the field contains all shadow pages ID.
       * </pre>
       */
      public java.util.List<? extends py.proto.Broadcastlog.PBShadowItemOrBuilder> 
           getShadowTableOrBuilderList() {
        if (shadowTableBuilder_ != null) {
          return shadowTableBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(shadowTable_);
        }
      }
      /**
       * <code>repeated .PBShadowItem shadowTable = 6;</code>
       *
       * <pre>
       * when the page is original, the field contains all shadow pages ID.
       * </pre>
       */
      public py.proto.Broadcastlog.PBShadowItem.Builder addShadowTableBuilder() {
        return getShadowTableFieldBuilder().addBuilder(
            py.proto.Broadcastlog.PBShadowItem.getDefaultInstance());
      }
      /**
       * <code>repeated .PBShadowItem shadowTable = 6;</code>
       *
       * <pre>
       * when the page is original, the field contains all shadow pages ID.
       * </pre>
       */
      public py.proto.Broadcastlog.PBShadowItem.Builder addShadowTableBuilder(
          int index) {
        return getShadowTableFieldBuilder().addBuilder(
            index, py.proto.Broadcastlog.PBShadowItem.getDefaultInstance());
      }
      /**
       * <code>repeated .PBShadowItem shadowTable = 6;</code>
       *
       * <pre>
       * when the page is original, the field contains all shadow pages ID.
       * </pre>
       */
      public java.util.List<py.proto.Broadcastlog.PBShadowItem.Builder> 
           getShadowTableBuilderList() {
        return getShadowTableFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          py.proto.Broadcastlog.PBShadowItem, py.proto.Broadcastlog.PBShadowItem.Builder, py.proto.Broadcastlog.PBShadowItemOrBuilder> 
          getShadowTableFieldBuilder() {
        if (shadowTableBuilder_ == null) {
          shadowTableBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              py.proto.Broadcastlog.PBShadowItem, py.proto.Broadcastlog.PBShadowItem.Builder, py.proto.Broadcastlog.PBShadowItemOrBuilder>(
                  shadowTable_,
                  ((bitField0_ & 0x00000020) == 0x00000020),
                  getParentForChildren(),
                  isClean());
          shadowTable_ = null;
        }
        return shadowTableBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:PBPageRequest)
    }

    static {
      defaultInstance = new PBPageRequest(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:PBPageRequest)
  }

  public interface PBShadowItemOrBuilder extends
          // @@protoc_insertion_point(interface_extends:PBShadowItem)
          com.google.protobuf.MessageOrBuilder {

    /**
     * <code>required bool isGarbageAddress = 1;</code>
     */
    boolean hasIsGarbageAddress();
    /**
     * <code>required bool isGarbageAddress = 1;</code>
     */
    boolean getIsGarbageAddress();

    /**
     * <code>repeated int32 snapshotIds = 2;</code>
     */
    java.util.List<java.lang.Integer> getSnapshotIdsList();
    /**
     * <code>repeated int32 snapshotIds = 2;</code>
     */
    int getSnapshotIdsCount();
    /**
     * <code>repeated int32 snapshotIds = 2;</code>
     */
    int getSnapshotIds(int index);
  }
  /**
   * Protobuf type {@code PBShadowItem}
   */
  public static final class PBShadowItem extends
          com.google.protobuf.GeneratedMessage implements
          // @@protoc_insertion_point(message_implements:PBShadowItem)
          PBShadowItemOrBuilder {
    // Use PBShadowItem.newBuilder() to construct.
    private PBShadowItem(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private PBShadowItem(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final PBShadowItem defaultInstance;
    public static PBShadowItem getDefaultInstance() {
      return defaultInstance;
    }

    public PBShadowItem getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private PBShadowItem(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
              com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
          case 0:
            done = true;
            break;
          default: {
            if (!parseUnknownField(input, unknownFields,
                    extensionRegistry, tag)) {
              done = true;
            }
            break;
          }
          case 8: {
            bitField0_ |= 0x00000001;
            isGarbageAddress_ = input.readBool();
            break;
          }
          case 16: {
            if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
              snapshotIds_ = new java.util.ArrayList<java.lang.Integer>();
              mutable_bitField0_ |= 0x00000002;
            }
            snapshotIds_.add(input.readInt32());
            break;
          }
          case 18: {
            int length = input.readRawVarint32();
            int limit = input.pushLimit(length);
            if (!((mutable_bitField0_ & 0x00000002) == 0x00000002) && input.getBytesUntilLimit() > 0) {
              snapshotIds_ = new java.util.ArrayList<java.lang.Integer>();
              mutable_bitField0_ |= 0x00000002;
            }
            while (input.getBytesUntilLimit() > 0) {
              snapshotIds_.add(input.readInt32());
            }
            input.popLimit(limit);
            break;
          }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
                e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          snapshotIds_ = java.util.Collections.unmodifiableList(snapshotIds_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
    getDescriptor() {
      return py.proto.Broadcastlog.internal_static_PBShadowItem_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
    internalGetFieldAccessorTable() {
      return py.proto.Broadcastlog.internal_static_PBShadowItem_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                      py.proto.Broadcastlog.PBShadowItem.class, py.proto.Broadcastlog.PBShadowItem.Builder.class);
    }

    public static com.google.protobuf.Parser<PBShadowItem> PARSER =
            new com.google.protobuf.AbstractParser<PBShadowItem>() {
              public PBShadowItem parsePartialFrom(
                      com.google.protobuf.CodedInputStream input,
                      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                      throws com.google.protobuf.InvalidProtocolBufferException {
                return new PBShadowItem(input, extensionRegistry);
              }
            };

    @java.lang.Override
    public com.google.protobuf.Parser<PBShadowItem> getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int ISGARBAGEADDRESS_FIELD_NUMBER = 1;
    private boolean isGarbageAddress_;
    /**
     * <code>required bool isGarbageAddress = 1;</code>
     */
    public boolean hasIsGarbageAddress() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required bool isGarbageAddress = 1;</code>
     */
    public boolean getIsGarbageAddress() {
      return isGarbageAddress_;
    }

    public static final int SNAPSHOTIDS_FIELD_NUMBER = 2;
    private java.util.List<java.lang.Integer> snapshotIds_;
    /**
     * <code>repeated int32 snapshotIds = 2;</code>
     */
    public java.util.List<java.lang.Integer>
    getSnapshotIdsList() {
      return snapshotIds_;
    }
    /**
     * <code>repeated int32 snapshotIds = 2;</code>
     */
    public int getSnapshotIdsCount() {
      return snapshotIds_.size();
    }
    /**
     * <code>repeated int32 snapshotIds = 2;</code>
     */
    public int getSnapshotIds(int index) {
      return snapshotIds_.get(index);
    }

    private void initFields() {
      isGarbageAddress_ = false;
      snapshotIds_ = java.util.Collections.emptyList();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasIsGarbageAddress()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
            throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBool(1, isGarbageAddress_);
      }
      for (int i = 0; i < snapshotIds_.size(); i++) {
        output.writeInt32(2, snapshotIds_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
                .computeBoolSize(1, isGarbageAddress_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < snapshotIds_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
                  .computeInt32SizeNoTag(snapshotIds_.get(i));
        }
        size += dataSize;
        size += 1 * getSnapshotIdsList().size();
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
            throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static py.proto.Broadcastlog.PBShadowItem parseFrom(
            com.google.protobuf.ByteString data)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static py.proto.Broadcastlog.PBShadowItem parseFrom(
            com.google.protobuf.ByteString data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBShadowItem parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static py.proto.Broadcastlog.PBShadowItem parseFrom(
            byte[] data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBShadowItem parseFrom(java.io.InputStream input)
            throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static py.proto.Broadcastlog.PBShadowItem parseFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBShadowItem parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static py.proto.Broadcastlog.PBShadowItem parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBShadowItem parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static py.proto.Broadcastlog.PBShadowItem parseFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(py.proto.Broadcastlog.PBShadowItem prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code PBShadowItem}
     */
    public static final class Builder extends
            com.google.protobuf.GeneratedMessage.Builder<Builder> implements
            // @@protoc_insertion_point(builder_implements:PBShadowItem)
            py.proto.Broadcastlog.PBShadowItemOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
      getDescriptor() {
        return py.proto.Broadcastlog.internal_static_PBShadowItem_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internalGetFieldAccessorTable() {
        return py.proto.Broadcastlog.internal_static_PBShadowItem_fieldAccessorTable
                .ensureFieldAccessorsInitialized(
                        py.proto.Broadcastlog.PBShadowItem.class, py.proto.Broadcastlog.PBShadowItem.Builder.class);
      }

      // Construct using py.proto.Broadcastlog.PBShadowItem.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
              com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        isGarbageAddress_ = false;
        bitField0_ = (bitField0_ & ~0x00000001);
        snapshotIds_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
      getDescriptorForType() {
        return py.proto.Broadcastlog.internal_static_PBShadowItem_descriptor;
      }

      public py.proto.Broadcastlog.PBShadowItem getDefaultInstanceForType() {
        return py.proto.Broadcastlog.PBShadowItem.getDefaultInstance();
      }

      public py.proto.Broadcastlog.PBShadowItem build() {
        py.proto.Broadcastlog.PBShadowItem result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public py.proto.Broadcastlog.PBShadowItem buildPartial() {
        py.proto.Broadcastlog.PBShadowItem result = new py.proto.Broadcastlog.PBShadowItem(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.isGarbageAddress_ = isGarbageAddress_;
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          snapshotIds_ = java.util.Collections.unmodifiableList(snapshotIds_);
          bitField0_ = (bitField0_ & ~0x00000002);
        }
        result.snapshotIds_ = snapshotIds_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof py.proto.Broadcastlog.PBShadowItem) {
          return mergeFrom((py.proto.Broadcastlog.PBShadowItem)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(py.proto.Broadcastlog.PBShadowItem other) {
        if (other == py.proto.Broadcastlog.PBShadowItem.getDefaultInstance()) return this;
        if (other.hasIsGarbageAddress()) {
          setIsGarbageAddress(other.getIsGarbageAddress());
        }
        if (!other.snapshotIds_.isEmpty()) {
          if (snapshotIds_.isEmpty()) {
            snapshotIds_ = other.snapshotIds_;
            bitField0_ = (bitField0_ & ~0x00000002);
          } else {
            ensureSnapshotIdsIsMutable();
            snapshotIds_.addAll(other.snapshotIds_);
          }
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasIsGarbageAddress()) {

          return false;
        }
        return true;
      }

      public Builder mergeFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
        py.proto.Broadcastlog.PBShadowItem parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (py.proto.Broadcastlog.PBShadowItem) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private boolean isGarbageAddress_ ;
      /**
       * <code>required bool isGarbageAddress = 1;</code>
       */
      public boolean hasIsGarbageAddress() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required bool isGarbageAddress = 1;</code>
       */
      public boolean getIsGarbageAddress() {
        return isGarbageAddress_;
      }
      /**
       * <code>required bool isGarbageAddress = 1;</code>
       */
      public Builder setIsGarbageAddress(boolean value) {
        bitField0_ |= 0x00000001;
        isGarbageAddress_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required bool isGarbageAddress = 1;</code>
       */
      public Builder clearIsGarbageAddress() {
        bitField0_ = (bitField0_ & ~0x00000001);
        isGarbageAddress_ = false;
        onChanged();
        return this;
      }

      private java.util.List<java.lang.Integer> snapshotIds_ = java.util.Collections.emptyList();
      private void ensureSnapshotIdsIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          snapshotIds_ = new java.util.ArrayList<java.lang.Integer>(snapshotIds_);
          bitField0_ |= 0x00000002;
        }
      }
      /**
       * <code>repeated int32 snapshotIds = 2;</code>
       */
      public java.util.List<java.lang.Integer>
      getSnapshotIdsList() {
        return java.util.Collections.unmodifiableList(snapshotIds_);
      }
      /**
       * <code>repeated int32 snapshotIds = 2;</code>
       */
      public int getSnapshotIdsCount() {
        return snapshotIds_.size();
      }
      /**
       * <code>repeated int32 snapshotIds = 2;</code>
       */
      public int getSnapshotIds(int index) {
        return snapshotIds_.get(index);
      }
      /**
       * <code>repeated int32 snapshotIds = 2;</code>
       */
      public Builder setSnapshotIds(
              int index, int value) {
        ensureSnapshotIdsIsMutable();
        snapshotIds_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated int32 snapshotIds = 2;</code>
       */
      public Builder addSnapshotIds(int value) {
        ensureSnapshotIdsIsMutable();
        snapshotIds_.add(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated int32 snapshotIds = 2;</code>
       */
      public Builder addAllSnapshotIds(
              java.lang.Iterable<? extends java.lang.Integer> values) {
        ensureSnapshotIdsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
                values, snapshotIds_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated int32 snapshotIds = 2;</code>
       */
      public Builder clearSnapshotIds() {
        snapshotIds_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:PBShadowItem)
    }

    static {
      defaultInstance = new PBShadowItem(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:PBShadowItem)
  }

  public interface PBPageResponseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:PBPageResponse)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>required int32 pageIndex = 1;</code>
     */
    boolean hasPageIndex();
    /**
     * <code>required int32 pageIndex = 1;</code>
     */
    int getPageIndex();

    /**
     * <code>required int32 currentSnapshotId = 2;</code>
     */
    boolean hasCurrentSnapshotId();
    /**
     * <code>required int32 currentSnapshotId = 2;</code>
     */
    int getCurrentSnapshotId();

    /**
     * <code>required int32 nextSnapshotId = 3;</code>
     *
     * <pre>
     * if currentSnapshotId.get(0) == nextSnapshotId, then the page is done.
     * </pre>
     */
    boolean hasNextSnapshotId();
    /**
     * <code>required int32 nextSnapshotId = 3;</code>
     *
     * <pre>
     * if currentSnapshotId.get(0) == nextSnapshotId, then the page is done.
     * </pre>
     */
    int getNextSnapshotId();

    /**
     * <code>optional int64 lastLogId = 4;</code>
     */
    boolean hasLastLogId();
    /**
     * <code>optional int64 lastLogId = 4;</code>
     */
    long getLastLogId();
  }
  /**
   * Protobuf type {@code PBPageResponse}
   */
  public static final class PBPageResponse extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:PBPageResponse)
      PBPageResponseOrBuilder {
    // Use PBPageResponse.newBuilder() to construct.
    private PBPageResponse(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private PBPageResponse(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final PBPageResponse defaultInstance;
    public static PBPageResponse getDefaultInstance() {
      return defaultInstance;
    }

    public PBPageResponse getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private PBPageResponse(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              pageIndex_ = input.readInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              currentSnapshotId_ = input.readInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              nextSnapshotId_ = input.readInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              lastLogId_ = input.readInt64();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return py.proto.Broadcastlog.internal_static_PBPageResponse_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return py.proto.Broadcastlog.internal_static_PBPageResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              py.proto.Broadcastlog.PBPageResponse.class, py.proto.Broadcastlog.PBPageResponse.Builder.class);
    }

    public static com.google.protobuf.Parser<PBPageResponse> PARSER =
        new com.google.protobuf.AbstractParser<PBPageResponse>() {
      public PBPageResponse parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new PBPageResponse(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser<PBPageResponse> getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int PAGEINDEX_FIELD_NUMBER = 1;
    private int pageIndex_;
    /**
     * <code>required int32 pageIndex = 1;</code>
     */
    public boolean hasPageIndex() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required int32 pageIndex = 1;</code>
     */
    public int getPageIndex() {
      return pageIndex_;
    }

    public static final int CURRENTSNAPSHOTID_FIELD_NUMBER = 2;
    private int currentSnapshotId_;
    /**
     * <code>required int32 currentSnapshotId = 2;</code>
     */
    public boolean hasCurrentSnapshotId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required int32 currentSnapshotId = 2;</code>
     */
    public int getCurrentSnapshotId() {
      return currentSnapshotId_;
    }

    public static final int NEXTSNAPSHOTID_FIELD_NUMBER = 3;
    private int nextSnapshotId_;
    /**
     * <code>required int32 nextSnapshotId = 3;</code>
     *
     * <pre>
     * if currentSnapshotId.get(0) == nextSnapshotId, then the page is done.
     * </pre>
     */
    public boolean hasNextSnapshotId() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>required int32 nextSnapshotId = 3;</code>
     *
     * <pre>
     * if currentSnapshotId.get(0) == nextSnapshotId, then the page is done.
     * </pre>
     */
    public int getNextSnapshotId() {
      return nextSnapshotId_;
    }

    public static final int LASTLOGID_FIELD_NUMBER = 4;
    private long lastLogId_;
    /**
     * <code>optional int64 lastLogId = 4;</code>
     */
    public boolean hasLastLogId() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * <code>optional int64 lastLogId = 4;</code>
     */
    public long getLastLogId() {
      return lastLogId_;
    }

    private void initFields() {
      pageIndex_ = 0;
      currentSnapshotId_ = 0;
      nextSnapshotId_ = 0;
      lastLogId_ = 0L;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasPageIndex()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasCurrentSnapshotId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasNextSnapshotId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, pageIndex_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, currentSnapshotId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt32(3, nextSnapshotId_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeInt64(4, lastLogId_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, pageIndex_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, currentSnapshotId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, nextSnapshotId_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(4, lastLogId_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static py.proto.Broadcastlog.PBPageResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static py.proto.Broadcastlog.PBPageResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBPageResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static py.proto.Broadcastlog.PBPageResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBPageResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static py.proto.Broadcastlog.PBPageResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBPageResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static py.proto.Broadcastlog.PBPageResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBPageResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static py.proto.Broadcastlog.PBPageResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(py.proto.Broadcastlog.PBPageResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code PBPageResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:PBPageResponse)
        py.proto.Broadcastlog.PBPageResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return py.proto.Broadcastlog.internal_static_PBPageResponse_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return py.proto.Broadcastlog.internal_static_PBPageResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                py.proto.Broadcastlog.PBPageResponse.class, py.proto.Broadcastlog.PBPageResponse.Builder.class);
      }

      // Construct using py.proto.Broadcastlog.PBPageResponse.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        pageIndex_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        currentSnapshotId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        nextSnapshotId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        lastLogId_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return py.proto.Broadcastlog.internal_static_PBPageResponse_descriptor;
      }

      public py.proto.Broadcastlog.PBPageResponse getDefaultInstanceForType() {
        return py.proto.Broadcastlog.PBPageResponse.getDefaultInstance();
      }

      public py.proto.Broadcastlog.PBPageResponse build() {
        py.proto.Broadcastlog.PBPageResponse result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public py.proto.Broadcastlog.PBPageResponse buildPartial() {
        py.proto.Broadcastlog.PBPageResponse result = new py.proto.Broadcastlog.PBPageResponse(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.pageIndex_ = pageIndex_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.currentSnapshotId_ = currentSnapshotId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.nextSnapshotId_ = nextSnapshotId_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.lastLogId_ = lastLogId_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof py.proto.Broadcastlog.PBPageResponse) {
          return mergeFrom((py.proto.Broadcastlog.PBPageResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(py.proto.Broadcastlog.PBPageResponse other) {
        if (other == py.proto.Broadcastlog.PBPageResponse.getDefaultInstance()) return this;
        if (other.hasPageIndex()) {
          setPageIndex(other.getPageIndex());
        }
        if (other.hasCurrentSnapshotId()) {
          setCurrentSnapshotId(other.getCurrentSnapshotId());
        }
        if (other.hasNextSnapshotId()) {
          setNextSnapshotId(other.getNextSnapshotId());
        }
        if (other.hasLastLogId()) {
          setLastLogId(other.getLastLogId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasPageIndex()) {
          
          return false;
        }
        if (!hasCurrentSnapshotId()) {
          
          return false;
        }
        if (!hasNextSnapshotId()) {
          
          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        py.proto.Broadcastlog.PBPageResponse parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (py.proto.Broadcastlog.PBPageResponse) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int pageIndex_ ;
      /**
       * <code>required int32 pageIndex = 1;</code>
       */
      public boolean hasPageIndex() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required int32 pageIndex = 1;</code>
       */
      public int getPageIndex() {
        return pageIndex_;
      }
      /**
       * <code>required int32 pageIndex = 1;</code>
       */
      public Builder setPageIndex(int value) {
        bitField0_ |= 0x00000001;
        pageIndex_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int32 pageIndex = 1;</code>
       */
      public Builder clearPageIndex() {
        bitField0_ = (bitField0_ & ~0x00000001);
        pageIndex_ = 0;
        onChanged();
        return this;
      }

      private int currentSnapshotId_ ;
      /**
       * <code>required int32 currentSnapshotId = 2;</code>
       */
      public boolean hasCurrentSnapshotId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required int32 currentSnapshotId = 2;</code>
       */
      public int getCurrentSnapshotId() {
        return currentSnapshotId_;
      }
      /**
       * <code>required int32 currentSnapshotId = 2;</code>
       */
      public Builder setCurrentSnapshotId(int value) {
        bitField0_ |= 0x00000002;
        currentSnapshotId_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int32 currentSnapshotId = 2;</code>
       */
      public Builder clearCurrentSnapshotId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        currentSnapshotId_ = 0;
        onChanged();
        return this;
      }

      private int nextSnapshotId_ ;
      /**
       * <code>required int32 nextSnapshotId = 3;</code>
       *
       * <pre>
       * if currentSnapshotId.get(0) == nextSnapshotId, then the page is done.
       * </pre>
       */
      public boolean hasNextSnapshotId() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>required int32 nextSnapshotId = 3;</code>
       *
       * <pre>
       * if currentSnapshotId.get(0) == nextSnapshotId, then the page is done.
       * </pre>
       */
      public int getNextSnapshotId() {
        return nextSnapshotId_;
      }
      /**
       * <code>required int32 nextSnapshotId = 3;</code>
       *
       * <pre>
       * if currentSnapshotId.get(0) == nextSnapshotId, then the page is done.
       * </pre>
       */
      public Builder setNextSnapshotId(int value) {
        bitField0_ |= 0x00000004;
        nextSnapshotId_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int32 nextSnapshotId = 3;</code>
       *
       * <pre>
       * if currentSnapshotId.get(0) == nextSnapshotId, then the page is done.
       * </pre>
       */
      public Builder clearNextSnapshotId() {
        bitField0_ = (bitField0_ & ~0x00000004);
        nextSnapshotId_ = 0;
        onChanged();
        return this;
      }

      private long lastLogId_ ;
      /**
       * <code>optional int64 lastLogId = 4;</code>
       */
      public boolean hasLastLogId() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * <code>optional int64 lastLogId = 4;</code>
       */
      public long getLastLogId() {
        return lastLogId_;
      }
      /**
       * <code>optional int64 lastLogId = 4;</code>
       */
      public Builder setLastLogId(long value) {
        bitField0_ |= 0x00000008;
        lastLogId_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int64 lastLogId = 4;</code>
       */
      public Builder clearLastLogId() {
        bitField0_ = (bitField0_ & ~0x00000008);
        lastLogId_ = 0L;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:PBPageResponse)
    }

    static {
      defaultInstance = new PBPageResponse(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:PBPageResponse)
  }

  public interface PBLogUnitOrBuilder extends
      // @@protoc_insertion_point(interface_extends:PBLogUnit)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>required int32 pageIndexInUnit = 1;</code>
     */
    boolean hasPageIndexInUnit();
    /**
     * <code>required int32 pageIndexInUnit = 1;</code>
     */
    int getPageIndexInUnit();

    /**
     * <code>required int64 lastLogId = 2;</code>
     */
    boolean hasLastLogId();
    /**
     * <code>required int64 lastLogId = 2;</code>
     */
    long getLastLogId();
  }
  /**
   * Protobuf type {@code PBLogUnit}
   */
  public static final class PBLogUnit extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:PBLogUnit)
      PBLogUnitOrBuilder {
    // Use PBLogUnit.newBuilder() to construct.
    private PBLogUnit(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private PBLogUnit(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final PBLogUnit defaultInstance;
    public static PBLogUnit getDefaultInstance() {
      return defaultInstance;
    }

    public PBLogUnit getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private PBLogUnit(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              pageIndexInUnit_ = input.readInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              lastLogId_ = input.readInt64();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return py.proto.Broadcastlog.internal_static_PBLogUnit_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return py.proto.Broadcastlog.internal_static_PBLogUnit_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              py.proto.Broadcastlog.PBLogUnit.class, py.proto.Broadcastlog.PBLogUnit.Builder.class);
    }

    public static com.google.protobuf.Parser<PBLogUnit> PARSER =
        new com.google.protobuf.AbstractParser<PBLogUnit>() {
      public PBLogUnit parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new PBLogUnit(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser<PBLogUnit> getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int PAGEINDEXINUNIT_FIELD_NUMBER = 1;
    private int pageIndexInUnit_;
    /**
     * <code>required int32 pageIndexInUnit = 1;</code>
     */
    public boolean hasPageIndexInUnit() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required int32 pageIndexInUnit = 1;</code>
     */
    public int getPageIndexInUnit() {
      return pageIndexInUnit_;
    }

    public static final int LASTLOGID_FIELD_NUMBER = 2;
    private long lastLogId_;
    /**
     * <code>required int64 lastLogId = 2;</code>
     */
    public boolean hasLastLogId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required int64 lastLogId = 2;</code>
     */
    public long getLastLogId() {
      return lastLogId_;
    }

    private void initFields() {
      pageIndexInUnit_ = 0;
      lastLogId_ = 0L;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasPageIndexInUnit()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasLastLogId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, pageIndexInUnit_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt64(2, lastLogId_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, pageIndexInUnit_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(2, lastLogId_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static py.proto.Broadcastlog.PBLogUnit parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static py.proto.Broadcastlog.PBLogUnit parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBLogUnit parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static py.proto.Broadcastlog.PBLogUnit parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBLogUnit parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static py.proto.Broadcastlog.PBLogUnit parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBLogUnit parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static py.proto.Broadcastlog.PBLogUnit parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBLogUnit parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static py.proto.Broadcastlog.PBLogUnit parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(py.proto.Broadcastlog.PBLogUnit prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code PBLogUnit}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:PBLogUnit)
        py.proto.Broadcastlog.PBLogUnitOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return py.proto.Broadcastlog.internal_static_PBLogUnit_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return py.proto.Broadcastlog.internal_static_PBLogUnit_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                py.proto.Broadcastlog.PBLogUnit.class, py.proto.Broadcastlog.PBLogUnit.Builder.class);
      }

      // Construct using py.proto.Broadcastlog.PBLogUnit.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        pageIndexInUnit_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        lastLogId_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return py.proto.Broadcastlog.internal_static_PBLogUnit_descriptor;
      }

      public py.proto.Broadcastlog.PBLogUnit getDefaultInstanceForType() {
        return py.proto.Broadcastlog.PBLogUnit.getDefaultInstance();
      }

      public py.proto.Broadcastlog.PBLogUnit build() {
        py.proto.Broadcastlog.PBLogUnit result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public py.proto.Broadcastlog.PBLogUnit buildPartial() {
        py.proto.Broadcastlog.PBLogUnit result = new py.proto.Broadcastlog.PBLogUnit(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.pageIndexInUnit_ = pageIndexInUnit_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.lastLogId_ = lastLogId_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof py.proto.Broadcastlog.PBLogUnit) {
          return mergeFrom((py.proto.Broadcastlog.PBLogUnit)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(py.proto.Broadcastlog.PBLogUnit other) {
        if (other == py.proto.Broadcastlog.PBLogUnit.getDefaultInstance()) return this;
        if (other.hasPageIndexInUnit()) {
          setPageIndexInUnit(other.getPageIndexInUnit());
        }
        if (other.hasLastLogId()) {
          setLastLogId(other.getLastLogId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasPageIndexInUnit()) {
          
          return false;
        }
        if (!hasLastLogId()) {
          
          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        py.proto.Broadcastlog.PBLogUnit parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (py.proto.Broadcastlog.PBLogUnit) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int pageIndexInUnit_ ;
      /**
       * <code>required int32 pageIndexInUnit = 1;</code>
       */
      public boolean hasPageIndexInUnit() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required int32 pageIndexInUnit = 1;</code>
       */
      public int getPageIndexInUnit() {
        return pageIndexInUnit_;
      }
      /**
       * <code>required int32 pageIndexInUnit = 1;</code>
       */
      public Builder setPageIndexInUnit(int value) {
        bitField0_ |= 0x00000001;
        pageIndexInUnit_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int32 pageIndexInUnit = 1;</code>
       */
      public Builder clearPageIndexInUnit() {
        bitField0_ = (bitField0_ & ~0x00000001);
        pageIndexInUnit_ = 0;
        onChanged();
        return this;
      }

      private long lastLogId_ ;
      /**
       * <code>required int64 lastLogId = 2;</code>
       */
      public boolean hasLastLogId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required int64 lastLogId = 2;</code>
       */
      public long getLastLogId() {
        return lastLogId_;
      }
      /**
       * <code>required int64 lastLogId = 2;</code>
       */
      public Builder setLastLogId(long value) {
        bitField0_ |= 0x00000002;
        lastLogId_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int64 lastLogId = 2;</code>
       */
      public Builder clearLastLogId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        lastLogId_ = 0L;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:PBLogUnit)
    }

    static {
      defaultInstance = new PBLogUnit(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:PBLogUnit)
  }

  public interface PBCopyPageResponseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:PBCopyPageResponse)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>required int64 requestId = 1;</code>
     */
    boolean hasRequestId();
    /**
     * <code>required int64 requestId = 1;</code>
     */
    long getRequestId();

    /**
     * <code>required int64 sessionId = 2;</code>
     */
    boolean hasSessionId();
    /**
     * <code>required int64 sessionId = 2;</code>
     */
    long getSessionId();

    /**
     * <code>required int32 copyPageUnitIndex = 3;</code>
     */
    boolean hasCopyPageUnitIndex();
    /**
     * <code>required int32 copyPageUnitIndex = 3;</code>
     */
    int getCopyPageUnitIndex();

    /**
     * <code>required .PBCopyPageStatus status = 4;</code>
     */
    boolean hasStatus();
    /**
     * <code>required .PBCopyPageStatus status = 4;</code>
     */
    py.proto.Broadcastlog.PBCopyPageStatus getStatus();

    /**
     * <code>repeated .PBPageResponse pageResponses = 5;</code>
     */
    java.util.List<py.proto.Broadcastlog.PBPageResponse> 
        getPageResponsesList();
    /**
     * <code>repeated .PBPageResponse pageResponses = 5;</code>
     */
    py.proto.Broadcastlog.PBPageResponse getPageResponses(int index);
    /**
     * <code>repeated .PBPageResponse pageResponses = 5;</code>
     */
    int getPageResponsesCount();
    /**
     * <code>repeated .PBPageResponse pageResponses = 5;</code>
     */
    java.util.List<? extends py.proto.Broadcastlog.PBPageResponseOrBuilder> 
        getPageResponsesOrBuilderList();
    /**
     * <code>repeated .PBPageResponse pageResponses = 5;</code>
     */
    py.proto.Broadcastlog.PBPageResponseOrBuilder getPageResponsesOrBuilder(
        int index);

    /**
     * <code>repeated .PBLogUnit nexLogUnits = 6;</code>
     */
    java.util.List<py.proto.Broadcastlog.PBLogUnit> 
        getNexLogUnitsList();
    /**
     * <code>repeated .PBLogUnit nexLogUnits = 6;</code>
     */
    py.proto.Broadcastlog.PBLogUnit getNexLogUnits(int index);
    /**
     * <code>repeated .PBLogUnit nexLogUnits = 6;</code>
     */
    int getNexLogUnitsCount();
    /**
     * <code>repeated .PBLogUnit nexLogUnits = 6;</code>
     */
    java.util.List<? extends py.proto.Broadcastlog.PBLogUnitOrBuilder> 
        getNexLogUnitsOrBuilderList();
    /**
     * <code>repeated .PBLogUnit nexLogUnits = 6;</code>
     */
    py.proto.Broadcastlog.PBLogUnitOrBuilder getNexLogUnitsOrBuilder(
        int index);

    /**
     * <code>optional int32 nextCopyPageUnitIndex = 7;</code>
     */
    boolean hasNextCopyPageUnitIndex();
    /**
     * <code>optional int32 nextCopyPageUnitIndex = 7;</code>
     */
    int getNextCopyPageUnitIndex();

    /**
     * <code>optional bytes nextBitmap = 8;</code>
     */
    boolean hasNextBitmap();
    /**
     * <code>optional bytes nextBitmap = 8;</code>
     */
    com.google.protobuf.ByteString getNextBitmap();

    /**
     * <code>optional int32 afterNextCopyPageUnitIndex = 9;</code>
     */
    boolean hasAfterNextCopyPageUnitIndex();
    /**
     * <code>optional int32 afterNextCopyPageUnitIndex = 9;</code>
     */
    int getAfterNextCopyPageUnitIndex();

    /**
     * <code>optional bytes afterNextBitmap = 10;</code>
     */
    boolean hasAfterNextBitmap();
    /**
     * <code>optional bytes afterNextBitmap = 10;</code>
     */
    com.google.protobuf.ByteString getAfterNextBitmap();

    /**
     * <code>optional bool canSSpeedUp = 11;</code>
     */
    boolean hasCanSSpeedUp();
    /**
     * <code>optional bool canSSpeedUp = 11;</code>
     */
    boolean getCanSSpeedUp();
  }
  /**
   * Protobuf type {@code PBCopyPageResponse}
   */
  public static final class PBCopyPageResponse extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:PBCopyPageResponse)
      PBCopyPageResponseOrBuilder {
    // Use PBCopyPageResponse.newBuilder() to construct.
    private PBCopyPageResponse(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private PBCopyPageResponse(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final PBCopyPageResponse defaultInstance;
    public static PBCopyPageResponse getDefaultInstance() {
      return defaultInstance;
    }

    public PBCopyPageResponse getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private PBCopyPageResponse(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              requestId_ = input.readInt64();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              sessionId_ = input.readInt64();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              copyPageUnitIndex_ = input.readInt32();
              break;
            }
            case 32: {
              int rawValue = input.readEnum();
              py.proto.Broadcastlog.PBCopyPageStatus value = py.proto.Broadcastlog.PBCopyPageStatus.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(4, rawValue);
              } else {
                bitField0_ |= 0x00000008;
                status_ = value;
              }
              break;
            }
            case 42: {
              if (!((mutable_bitField0_ & 0x00000010) == 0x00000010)) {
                pageResponses_ = new java.util.LinkedList<py.proto.Broadcastlog.PBPageResponse>();
                mutable_bitField0_ |= 0x00000010;
              }
              pageResponses_.add(input.readMessage(py.proto.Broadcastlog.PBPageResponse.PARSER, extensionRegistry));
              break;
            }
            case 50: {
              if (!((mutable_bitField0_ & 0x00000020) == 0x00000020)) {
                nexLogUnits_ = new java.util.LinkedList<py.proto.Broadcastlog.PBLogUnit>();
                mutable_bitField0_ |= 0x00000020;
              }
              nexLogUnits_.add(input.readMessage(py.proto.Broadcastlog.PBLogUnit.PARSER, extensionRegistry));
              break;
            }
            case 56: {
              bitField0_ |= 0x00000010;
              nextCopyPageUnitIndex_ = input.readInt32();
              break;
            }
            case 66: {
              bitField0_ |= 0x00000020;
              nextBitmap_ = input.readBytes();
              break;
            }
            case 72: {
              bitField0_ |= 0x00000040;
              afterNextCopyPageUnitIndex_ = input.readInt32();
              break;
            }
            case 82: {
              bitField0_ |= 0x00000080;
              afterNextBitmap_ = input.readBytes();
              break;
            }
            case 88: {
              bitField0_ |= 0x00000100;
              canSSpeedUp_ = input.readBool();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000010) == 0x00000010)) {
          pageResponses_ = java.util.Collections.unmodifiableList(pageResponses_);
        }
        if (((mutable_bitField0_ & 0x00000020) == 0x00000020)) {
          nexLogUnits_ = java.util.Collections.unmodifiableList(nexLogUnits_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return py.proto.Broadcastlog.internal_static_PBCopyPageResponse_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return py.proto.Broadcastlog.internal_static_PBCopyPageResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              py.proto.Broadcastlog.PBCopyPageResponse.class, py.proto.Broadcastlog.PBCopyPageResponse.Builder.class);
    }

    public static com.google.protobuf.Parser<PBCopyPageResponse> PARSER =
        new com.google.protobuf.AbstractParser<PBCopyPageResponse>() {
      public PBCopyPageResponse parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new PBCopyPageResponse(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser<PBCopyPageResponse> getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int REQUESTID_FIELD_NUMBER = 1;
    private long requestId_;
    /**
     * <code>required int64 requestId = 1;</code>
     */
    public boolean hasRequestId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required int64 requestId = 1;</code>
     */
    public long getRequestId() {
      return requestId_;
    }

    public static final int SESSIONID_FIELD_NUMBER = 2;
    private long sessionId_;
    /**
     * <code>required int64 sessionId = 2;</code>
     */
    public boolean hasSessionId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required int64 sessionId = 2;</code>
     */
    public long getSessionId() {
      return sessionId_;
    }

    public static final int COPYPAGEUNITINDEX_FIELD_NUMBER = 3;
    private int copyPageUnitIndex_;
    /**
     * <code>required int32 copyPageUnitIndex = 3;</code>
     */
    public boolean hasCopyPageUnitIndex() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>required int32 copyPageUnitIndex = 3;</code>
     */
    public int getCopyPageUnitIndex() {
      return copyPageUnitIndex_;
    }

    public static final int STATUS_FIELD_NUMBER = 4;
    private py.proto.Broadcastlog.PBCopyPageStatus status_;
    /**
     * <code>required .PBCopyPageStatus status = 4;</code>
     */
    public boolean hasStatus() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * <code>required .PBCopyPageStatus status = 4;</code>
     */
    public py.proto.Broadcastlog.PBCopyPageStatus getStatus() {
      return status_;
    }

    public static final int PAGERESPONSES_FIELD_NUMBER = 5;
    private java.util.List<py.proto.Broadcastlog.PBPageResponse> pageResponses_;
    /**
     * <code>repeated .PBPageResponse pageResponses = 5;</code>
     */
    public java.util.List<py.proto.Broadcastlog.PBPageResponse> getPageResponsesList() {
      return pageResponses_;
    }
    /**
     * <code>repeated .PBPageResponse pageResponses = 5;</code>
     */
    public java.util.List<? extends py.proto.Broadcastlog.PBPageResponseOrBuilder> 
        getPageResponsesOrBuilderList() {
      return pageResponses_;
    }
    /**
     * <code>repeated .PBPageResponse pageResponses = 5;</code>
     */
    public int getPageResponsesCount() {
      return pageResponses_.size();
    }
    /**
     * <code>repeated .PBPageResponse pageResponses = 5;</code>
     */
    public py.proto.Broadcastlog.PBPageResponse getPageResponses(int index) {
      return pageResponses_.get(index);
    }
    /**
     * <code>repeated .PBPageResponse pageResponses = 5;</code>
     */
    public py.proto.Broadcastlog.PBPageResponseOrBuilder getPageResponsesOrBuilder(
        int index) {
      return pageResponses_.get(index);
    }

    public static final int NEXLOGUNITS_FIELD_NUMBER = 6;
    private java.util.List<py.proto.Broadcastlog.PBLogUnit> nexLogUnits_;
    /**
     * <code>repeated .PBLogUnit nexLogUnits = 6;</code>
     */
    public java.util.List<py.proto.Broadcastlog.PBLogUnit> getNexLogUnitsList() {
      return nexLogUnits_;
    }
    /**
     * <code>repeated .PBLogUnit nexLogUnits = 6;</code>
     */
    public java.util.List<? extends py.proto.Broadcastlog.PBLogUnitOrBuilder> 
        getNexLogUnitsOrBuilderList() {
      return nexLogUnits_;
    }
    /**
     * <code>repeated .PBLogUnit nexLogUnits = 6;</code>
     */
    public int getNexLogUnitsCount() {
      return nexLogUnits_.size();
    }
    /**
     * <code>repeated .PBLogUnit nexLogUnits = 6;</code>
     */
    public py.proto.Broadcastlog.PBLogUnit getNexLogUnits(int index) {
      return nexLogUnits_.get(index);
    }
    /**
     * <code>repeated .PBLogUnit nexLogUnits = 6;</code>
     */
    public py.proto.Broadcastlog.PBLogUnitOrBuilder getNexLogUnitsOrBuilder(
        int index) {
      return nexLogUnits_.get(index);
    }

    public static final int NEXTCOPYPAGEUNITINDEX_FIELD_NUMBER = 7;
    private int nextCopyPageUnitIndex_;
    /**
     * <code>optional int32 nextCopyPageUnitIndex = 7;</code>
     */
    public boolean hasNextCopyPageUnitIndex() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * <code>optional int32 nextCopyPageUnitIndex = 7;</code>
     */
    public int getNextCopyPageUnitIndex() {
      return nextCopyPageUnitIndex_;
    }

    public static final int NEXTBITMAP_FIELD_NUMBER = 8;
    private com.google.protobuf.ByteString nextBitmap_;
    /**
     * <code>optional bytes nextBitmap = 8;</code>
     */
    public boolean hasNextBitmap() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     * <code>optional bytes nextBitmap = 8;</code>
     */
    public com.google.protobuf.ByteString getNextBitmap() {
      return nextBitmap_;
    }

    public static final int AFTERNEXTCOPYPAGEUNITINDEX_FIELD_NUMBER = 9;
    private int afterNextCopyPageUnitIndex_;
    /**
     * <code>optional int32 afterNextCopyPageUnitIndex = 9;</code>
     */
    public boolean hasAfterNextCopyPageUnitIndex() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    /**
     * <code>optional int32 afterNextCopyPageUnitIndex = 9;</code>
     */
    public int getAfterNextCopyPageUnitIndex() {
      return afterNextCopyPageUnitIndex_;
    }

    public static final int AFTERNEXTBITMAP_FIELD_NUMBER = 10;
    private com.google.protobuf.ByteString afterNextBitmap_;
    /**
     * <code>optional bytes afterNextBitmap = 10;</code>
     */
    public boolean hasAfterNextBitmap() {
      return ((bitField0_ & 0x00000080) == 0x00000080);
    }
    /**
     * <code>optional bytes afterNextBitmap = 10;</code>
     */
    public com.google.protobuf.ByteString getAfterNextBitmap() {
      return afterNextBitmap_;
    }

    public static final int CANSSPEEDUP_FIELD_NUMBER = 11;
    private boolean canSSpeedUp_;
    /**
     * <code>optional bool canSSpeedUp = 11;</code>
     */
    public boolean hasCanSSpeedUp() {
      return ((bitField0_ & 0x00000100) == 0x00000100);
    }
    /**
     * <code>optional bool canSSpeedUp = 11;</code>
     */
    public boolean getCanSSpeedUp() {
      return canSSpeedUp_;
    }

    private void initFields() {
      requestId_ = 0L;
      sessionId_ = 0L;
      copyPageUnitIndex_ = 0;
      status_ = py.proto.Broadcastlog.PBCopyPageStatus.CopyPageStart;
      pageResponses_ = java.util.Collections.emptyList();
      nexLogUnits_ = java.util.Collections.emptyList();
      nextCopyPageUnitIndex_ = 0;
      nextBitmap_ = com.google.protobuf.ByteString.EMPTY;
      afterNextCopyPageUnitIndex_ = 0;
      afterNextBitmap_ = com.google.protobuf.ByteString.EMPTY;
      canSSpeedUp_ = false;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasRequestId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasSessionId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasCopyPageUnitIndex()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasStatus()) {
        memoizedIsInitialized = 0;
        return false;
      }
      for (int i = 0; i < getPageResponsesCount(); i++) {
        if (!getPageResponses(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      for (int i = 0; i < getNexLogUnitsCount(); i++) {
        if (!getNexLogUnits(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt64(1, requestId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt64(2, sessionId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt32(3, copyPageUnitIndex_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeEnum(4, status_.getNumber());
      }
      for (int i = 0; i < pageResponses_.size(); i++) {
        output.writeMessage(5, pageResponses_.get(i));
      }
      for (int i = 0; i < nexLogUnits_.size(); i++) {
        output.writeMessage(6, nexLogUnits_.get(i));
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeInt32(7, nextCopyPageUnitIndex_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeBytes(8, nextBitmap_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        output.writeInt32(9, afterNextCopyPageUnitIndex_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        output.writeBytes(10, afterNextBitmap_);
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        output.writeBool(11, canSSpeedUp_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, requestId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(2, sessionId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, copyPageUnitIndex_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(4, status_.getNumber());
      }
      for (int i = 0; i < pageResponses_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, pageResponses_.get(i));
      }
      for (int i = 0; i < nexLogUnits_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(6, nexLogUnits_.get(i));
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(7, nextCopyPageUnitIndex_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(8, nextBitmap_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(9, afterNextCopyPageUnitIndex_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(10, afterNextBitmap_);
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(11, canSSpeedUp_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static py.proto.Broadcastlog.PBCopyPageResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static py.proto.Broadcastlog.PBCopyPageResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBCopyPageResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static py.proto.Broadcastlog.PBCopyPageResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBCopyPageResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static py.proto.Broadcastlog.PBCopyPageResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBCopyPageResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static py.proto.Broadcastlog.PBCopyPageResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBCopyPageResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static py.proto.Broadcastlog.PBCopyPageResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(py.proto.Broadcastlog.PBCopyPageResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code PBCopyPageResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:PBCopyPageResponse)
        py.proto.Broadcastlog.PBCopyPageResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return py.proto.Broadcastlog.internal_static_PBCopyPageResponse_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return py.proto.Broadcastlog.internal_static_PBCopyPageResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                py.proto.Broadcastlog.PBCopyPageResponse.class, py.proto.Broadcastlog.PBCopyPageResponse.Builder.class);
      }

      // Construct using py.proto.Broadcastlog.PBCopyPageResponse.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getPageResponsesFieldBuilder();
          getNexLogUnitsFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        requestId_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000001);
        sessionId_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000002);
        copyPageUnitIndex_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        status_ = py.proto.Broadcastlog.PBCopyPageStatus.CopyPageStart;
        bitField0_ = (bitField0_ & ~0x00000008);
        if (pageResponsesBuilder_ == null) {
          pageResponses_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000010);
        } else {
          pageResponsesBuilder_.clear();
        }
        if (nexLogUnitsBuilder_ == null) {
          nexLogUnits_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000020);
        } else {
          nexLogUnitsBuilder_.clear();
        }
        nextCopyPageUnitIndex_ = 0;
        bitField0_ = (bitField0_ & ~0x00000040);
        nextBitmap_ = com.google.protobuf.ByteString.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000080);
        afterNextCopyPageUnitIndex_ = 0;
        bitField0_ = (bitField0_ & ~0x00000100);
        afterNextBitmap_ = com.google.protobuf.ByteString.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000200);
        canSSpeedUp_ = false;
        bitField0_ = (bitField0_ & ~0x00000400);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return py.proto.Broadcastlog.internal_static_PBCopyPageResponse_descriptor;
      }

      public py.proto.Broadcastlog.PBCopyPageResponse getDefaultInstanceForType() {
        return py.proto.Broadcastlog.PBCopyPageResponse.getDefaultInstance();
      }

      public py.proto.Broadcastlog.PBCopyPageResponse build() {
        py.proto.Broadcastlog.PBCopyPageResponse result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public py.proto.Broadcastlog.PBCopyPageResponse buildPartial() {
        py.proto.Broadcastlog.PBCopyPageResponse result = new py.proto.Broadcastlog.PBCopyPageResponse(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.requestId_ = requestId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.sessionId_ = sessionId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.copyPageUnitIndex_ = copyPageUnitIndex_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.status_ = status_;
        if (pageResponsesBuilder_ == null) {
          if (((bitField0_ & 0x00000010) == 0x00000010)) {
            pageResponses_ = java.util.Collections.unmodifiableList(pageResponses_);
            bitField0_ = (bitField0_ & ~0x00000010);
          }
          result.pageResponses_ = pageResponses_;
        } else {
          result.pageResponses_ = pageResponsesBuilder_.build();
        }
        if (nexLogUnitsBuilder_ == null) {
          if (((bitField0_ & 0x00000020) == 0x00000020)) {
            nexLogUnits_ = java.util.Collections.unmodifiableList(nexLogUnits_);
            bitField0_ = (bitField0_ & ~0x00000020);
          }
          result.nexLogUnits_ = nexLogUnits_;
        } else {
          result.nexLogUnits_ = nexLogUnitsBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000010;
        }
        result.nextCopyPageUnitIndex_ = nextCopyPageUnitIndex_;
        if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
          to_bitField0_ |= 0x00000020;
        }
        result.nextBitmap_ = nextBitmap_;
        if (((from_bitField0_ & 0x00000100) == 0x00000100)) {
          to_bitField0_ |= 0x00000040;
        }
        result.afterNextCopyPageUnitIndex_ = afterNextCopyPageUnitIndex_;
        if (((from_bitField0_ & 0x00000200) == 0x00000200)) {
          to_bitField0_ |= 0x00000080;
        }
        result.afterNextBitmap_ = afterNextBitmap_;
        if (((from_bitField0_ & 0x00000400) == 0x00000400)) {
          to_bitField0_ |= 0x00000100;
        }
        result.canSSpeedUp_ = canSSpeedUp_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof py.proto.Broadcastlog.PBCopyPageResponse) {
          return mergeFrom((py.proto.Broadcastlog.PBCopyPageResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(py.proto.Broadcastlog.PBCopyPageResponse other) {
        if (other == py.proto.Broadcastlog.PBCopyPageResponse.getDefaultInstance()) return this;
        if (other.hasRequestId()) {
          setRequestId(other.getRequestId());
        }
        if (other.hasSessionId()) {
          setSessionId(other.getSessionId());
        }
        if (other.hasCopyPageUnitIndex()) {
          setCopyPageUnitIndex(other.getCopyPageUnitIndex());
        }
        if (other.hasStatus()) {
          setStatus(other.getStatus());
        }
        if (pageResponsesBuilder_ == null) {
          if (!other.pageResponses_.isEmpty()) {
            if (pageResponses_.isEmpty()) {
              pageResponses_ = other.pageResponses_;
              bitField0_ = (bitField0_ & ~0x00000010);
            } else {
              ensurePageResponsesIsMutable();
              pageResponses_.addAll(other.pageResponses_);
            }
            onChanged();
          }
        } else {
          if (!other.pageResponses_.isEmpty()) {
            if (pageResponsesBuilder_.isEmpty()) {
              pageResponsesBuilder_.dispose();
              pageResponsesBuilder_ = null;
              pageResponses_ = other.pageResponses_;
              bitField0_ = (bitField0_ & ~0x00000010);
              pageResponsesBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getPageResponsesFieldBuilder() : null;
            } else {
              pageResponsesBuilder_.addAllMessages(other.pageResponses_);
            }
          }
        }
        if (nexLogUnitsBuilder_ == null) {
          if (!other.nexLogUnits_.isEmpty()) {
            if (nexLogUnits_.isEmpty()) {
              nexLogUnits_ = other.nexLogUnits_;
              bitField0_ = (bitField0_ & ~0x00000020);
            } else {
              ensureNexLogUnitsIsMutable();
              nexLogUnits_.addAll(other.nexLogUnits_);
            }
            onChanged();
          }
        } else {
          if (!other.nexLogUnits_.isEmpty()) {
            if (nexLogUnitsBuilder_.isEmpty()) {
              nexLogUnitsBuilder_.dispose();
              nexLogUnitsBuilder_ = null;
              nexLogUnits_ = other.nexLogUnits_;
              bitField0_ = (bitField0_ & ~0x00000020);
              nexLogUnitsBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getNexLogUnitsFieldBuilder() : null;
            } else {
              nexLogUnitsBuilder_.addAllMessages(other.nexLogUnits_);
            }
          }
        }
        if (other.hasNextCopyPageUnitIndex()) {
          setNextCopyPageUnitIndex(other.getNextCopyPageUnitIndex());
        }
        if (other.hasNextBitmap()) {
          setNextBitmap(other.getNextBitmap());
        }
        if (other.hasAfterNextCopyPageUnitIndex()) {
          setAfterNextCopyPageUnitIndex(other.getAfterNextCopyPageUnitIndex());
        }
        if (other.hasAfterNextBitmap()) {
          setAfterNextBitmap(other.getAfterNextBitmap());
        }
        if (other.hasCanSSpeedUp()) {
          setCanSSpeedUp(other.getCanSSpeedUp());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasRequestId()) {
          
          return false;
        }
        if (!hasSessionId()) {
          
          return false;
        }
        if (!hasCopyPageUnitIndex()) {
          
          return false;
        }
        if (!hasStatus()) {
          
          return false;
        }
        for (int i = 0; i < getPageResponsesCount(); i++) {
          if (!getPageResponses(i).isInitialized()) {
            
            return false;
          }
        }
        for (int i = 0; i < getNexLogUnitsCount(); i++) {
          if (!getNexLogUnits(i).isInitialized()) {
            
            return false;
          }
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        py.proto.Broadcastlog.PBCopyPageResponse parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (py.proto.Broadcastlog.PBCopyPageResponse) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private long requestId_ ;
      /**
       * <code>required int64 requestId = 1;</code>
       */
      public boolean hasRequestId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required int64 requestId = 1;</code>
       */
      public long getRequestId() {
        return requestId_;
      }
      /**
       * <code>required int64 requestId = 1;</code>
       */
      public Builder setRequestId(long value) {
        bitField0_ |= 0x00000001;
        requestId_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int64 requestId = 1;</code>
       */
      public Builder clearRequestId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        requestId_ = 0L;
        onChanged();
        return this;
      }

      private long sessionId_ ;
      /**
       * <code>required int64 sessionId = 2;</code>
       */
      public boolean hasSessionId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required int64 sessionId = 2;</code>
       */
      public long getSessionId() {
        return sessionId_;
      }
      /**
       * <code>required int64 sessionId = 2;</code>
       */
      public Builder setSessionId(long value) {
        bitField0_ |= 0x00000002;
        sessionId_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int64 sessionId = 2;</code>
       */
      public Builder clearSessionId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        sessionId_ = 0L;
        onChanged();
        return this;
      }

      private int copyPageUnitIndex_ ;
      /**
       * <code>required int32 copyPageUnitIndex = 3;</code>
       */
      public boolean hasCopyPageUnitIndex() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>required int32 copyPageUnitIndex = 3;</code>
       */
      public int getCopyPageUnitIndex() {
        return copyPageUnitIndex_;
      }
      /**
       * <code>required int32 copyPageUnitIndex = 3;</code>
       */
      public Builder setCopyPageUnitIndex(int value) {
        bitField0_ |= 0x00000004;
        copyPageUnitIndex_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int32 copyPageUnitIndex = 3;</code>
       */
      public Builder clearCopyPageUnitIndex() {
        bitField0_ = (bitField0_ & ~0x00000004);
        copyPageUnitIndex_ = 0;
        onChanged();
        return this;
      }

      private py.proto.Broadcastlog.PBCopyPageStatus status_ = py.proto.Broadcastlog.PBCopyPageStatus.CopyPageStart;
      /**
       * <code>required .PBCopyPageStatus status = 4;</code>
       */
      public boolean hasStatus() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * <code>required .PBCopyPageStatus status = 4;</code>
       */
      public py.proto.Broadcastlog.PBCopyPageStatus getStatus() {
        return status_;
      }
      /**
       * <code>required .PBCopyPageStatus status = 4;</code>
       */
      public Builder setStatus(py.proto.Broadcastlog.PBCopyPageStatus value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000008;
        status_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required .PBCopyPageStatus status = 4;</code>
       */
      public Builder clearStatus() {
        bitField0_ = (bitField0_ & ~0x00000008);
        status_ = py.proto.Broadcastlog.PBCopyPageStatus.CopyPageStart;
        onChanged();
        return this;
      }

      private java.util.List<py.proto.Broadcastlog.PBPageResponse> pageResponses_ =
        java.util.Collections.emptyList();
      private void ensurePageResponsesIsMutable() {
        if (!((bitField0_ & 0x00000010) == 0x00000010)) {
          pageResponses_ = new java.util.LinkedList<py.proto.Broadcastlog.PBPageResponse>(pageResponses_);
          bitField0_ |= 0x00000010;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          py.proto.Broadcastlog.PBPageResponse, py.proto.Broadcastlog.PBPageResponse.Builder, py.proto.Broadcastlog.PBPageResponseOrBuilder> pageResponsesBuilder_;

      /**
       * <code>repeated .PBPageResponse pageResponses = 5;</code>
       */
      public java.util.List<py.proto.Broadcastlog.PBPageResponse> getPageResponsesList() {
        if (pageResponsesBuilder_ == null) {
          return java.util.Collections.unmodifiableList(pageResponses_);
        } else {
          return pageResponsesBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .PBPageResponse pageResponses = 5;</code>
       */
      public int getPageResponsesCount() {
        if (pageResponsesBuilder_ == null) {
          return pageResponses_.size();
        } else {
          return pageResponsesBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .PBPageResponse pageResponses = 5;</code>
       */
      public py.proto.Broadcastlog.PBPageResponse getPageResponses(int index) {
        if (pageResponsesBuilder_ == null) {
          return pageResponses_.get(index);
        } else {
          return pageResponsesBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .PBPageResponse pageResponses = 5;</code>
       */
      public Builder setPageResponses(
          int index, py.proto.Broadcastlog.PBPageResponse value) {
        if (pageResponsesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePageResponsesIsMutable();
          pageResponses_.set(index, value);
          onChanged();
        } else {
          pageResponsesBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .PBPageResponse pageResponses = 5;</code>
       */
      public Builder setPageResponses(
          int index, py.proto.Broadcastlog.PBPageResponse.Builder builderForValue) {
        if (pageResponsesBuilder_ == null) {
          ensurePageResponsesIsMutable();
          pageResponses_.set(index, builderForValue.build());
          onChanged();
        } else {
          pageResponsesBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .PBPageResponse pageResponses = 5;</code>
       */
      public Builder addPageResponses(py.proto.Broadcastlog.PBPageResponse value) {
        if (pageResponsesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePageResponsesIsMutable();
          pageResponses_.add(value);
          onChanged();
        } else {
          pageResponsesBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .PBPageResponse pageResponses = 5;</code>
       */
      public Builder addPageResponses(
          int index, py.proto.Broadcastlog.PBPageResponse value) {
        if (pageResponsesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePageResponsesIsMutable();
          pageResponses_.add(index, value);
          onChanged();
        } else {
          pageResponsesBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .PBPageResponse pageResponses = 5;</code>
       */
      public Builder addPageResponses(
          py.proto.Broadcastlog.PBPageResponse.Builder builderForValue) {
        if (pageResponsesBuilder_ == null) {
          ensurePageResponsesIsMutable();
          pageResponses_.add(builderForValue.build());
          onChanged();
        } else {
          pageResponsesBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .PBPageResponse pageResponses = 5;</code>
       */
      public Builder addPageResponses(
          int index, py.proto.Broadcastlog.PBPageResponse.Builder builderForValue) {
        if (pageResponsesBuilder_ == null) {
          ensurePageResponsesIsMutable();
          pageResponses_.add(index, builderForValue.build());
          onChanged();
        } else {
          pageResponsesBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .PBPageResponse pageResponses = 5;</code>
       */
      public Builder addAllPageResponses(
          java.lang.Iterable<? extends py.proto.Broadcastlog.PBPageResponse> values) {
        if (pageResponsesBuilder_ == null) {
          ensurePageResponsesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, pageResponses_);
          onChanged();
        } else {
          pageResponsesBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .PBPageResponse pageResponses = 5;</code>
       */
      public Builder clearPageResponses() {
        if (pageResponsesBuilder_ == null) {
          pageResponses_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000010);
          onChanged();
        } else {
          pageResponsesBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .PBPageResponse pageResponses = 5;</code>
       */
      public Builder removePageResponses(int index) {
        if (pageResponsesBuilder_ == null) {
          ensurePageResponsesIsMutable();
          pageResponses_.remove(index);
          onChanged();
        } else {
          pageResponsesBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .PBPageResponse pageResponses = 5;</code>
       */
      public py.proto.Broadcastlog.PBPageResponse.Builder getPageResponsesBuilder(
          int index) {
        return getPageResponsesFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .PBPageResponse pageResponses = 5;</code>
       */
      public py.proto.Broadcastlog.PBPageResponseOrBuilder getPageResponsesOrBuilder(
          int index) {
        if (pageResponsesBuilder_ == null) {
          return pageResponses_.get(index);  } else {
          return pageResponsesBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .PBPageResponse pageResponses = 5;</code>
       */
      public java.util.List<? extends py.proto.Broadcastlog.PBPageResponseOrBuilder> 
           getPageResponsesOrBuilderList() {
        if (pageResponsesBuilder_ != null) {
          return pageResponsesBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(pageResponses_);
        }
      }
      /**
       * <code>repeated .PBPageResponse pageResponses = 5;</code>
       */
      public py.proto.Broadcastlog.PBPageResponse.Builder addPageResponsesBuilder() {
        return getPageResponsesFieldBuilder().addBuilder(
            py.proto.Broadcastlog.PBPageResponse.getDefaultInstance());
      }
      /**
       * <code>repeated .PBPageResponse pageResponses = 5;</code>
       */
      public py.proto.Broadcastlog.PBPageResponse.Builder addPageResponsesBuilder(
          int index) {
        return getPageResponsesFieldBuilder().addBuilder(
            index, py.proto.Broadcastlog.PBPageResponse.getDefaultInstance());
      }
      /**
       * <code>repeated .PBPageResponse pageResponses = 5;</code>
       */
      public java.util.List<py.proto.Broadcastlog.PBPageResponse.Builder> 
           getPageResponsesBuilderList() {
        return getPageResponsesFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          py.proto.Broadcastlog.PBPageResponse, py.proto.Broadcastlog.PBPageResponse.Builder, py.proto.Broadcastlog.PBPageResponseOrBuilder> 
          getPageResponsesFieldBuilder() {
        if (pageResponsesBuilder_ == null) {
          pageResponsesBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              py.proto.Broadcastlog.PBPageResponse, py.proto.Broadcastlog.PBPageResponse.Builder, py.proto.Broadcastlog.PBPageResponseOrBuilder>(
                  pageResponses_,
                  ((bitField0_ & 0x00000010) == 0x00000010),
                  getParentForChildren(),
                  isClean());
          pageResponses_ = null;
        }
        return pageResponsesBuilder_;
      }

      private java.util.List<py.proto.Broadcastlog.PBLogUnit> nexLogUnits_ =
        java.util.Collections.emptyList();
      private void ensureNexLogUnitsIsMutable() {
        if (!((bitField0_ & 0x00000020) == 0x00000020)) {
          nexLogUnits_ = new java.util.LinkedList<py.proto.Broadcastlog.PBLogUnit>(nexLogUnits_);
          bitField0_ |= 0x00000020;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          py.proto.Broadcastlog.PBLogUnit, py.proto.Broadcastlog.PBLogUnit.Builder, py.proto.Broadcastlog.PBLogUnitOrBuilder> nexLogUnitsBuilder_;

      /**
       * <code>repeated .PBLogUnit nexLogUnits = 6;</code>
       */
      public java.util.List<py.proto.Broadcastlog.PBLogUnit> getNexLogUnitsList() {
        if (nexLogUnitsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(nexLogUnits_);
        } else {
          return nexLogUnitsBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .PBLogUnit nexLogUnits = 6;</code>
       */
      public int getNexLogUnitsCount() {
        if (nexLogUnitsBuilder_ == null) {
          return nexLogUnits_.size();
        } else {
          return nexLogUnitsBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .PBLogUnit nexLogUnits = 6;</code>
       */
      public py.proto.Broadcastlog.PBLogUnit getNexLogUnits(int index) {
        if (nexLogUnitsBuilder_ == null) {
          return nexLogUnits_.get(index);
        } else {
          return nexLogUnitsBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .PBLogUnit nexLogUnits = 6;</code>
       */
      public Builder setNexLogUnits(
          int index, py.proto.Broadcastlog.PBLogUnit value) {
        if (nexLogUnitsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureNexLogUnitsIsMutable();
          nexLogUnits_.set(index, value);
          onChanged();
        } else {
          nexLogUnitsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .PBLogUnit nexLogUnits = 6;</code>
       */
      public Builder setNexLogUnits(
          int index, py.proto.Broadcastlog.PBLogUnit.Builder builderForValue) {
        if (nexLogUnitsBuilder_ == null) {
          ensureNexLogUnitsIsMutable();
          nexLogUnits_.set(index, builderForValue.build());
          onChanged();
        } else {
          nexLogUnitsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .PBLogUnit nexLogUnits = 6;</code>
       */
      public Builder addNexLogUnits(py.proto.Broadcastlog.PBLogUnit value) {
        if (nexLogUnitsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureNexLogUnitsIsMutable();
          nexLogUnits_.add(value);
          onChanged();
        } else {
          nexLogUnitsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .PBLogUnit nexLogUnits = 6;</code>
       */
      public Builder addNexLogUnits(
          int index, py.proto.Broadcastlog.PBLogUnit value) {
        if (nexLogUnitsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureNexLogUnitsIsMutable();
          nexLogUnits_.add(index, value);
          onChanged();
        } else {
          nexLogUnitsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .PBLogUnit nexLogUnits = 6;</code>
       */
      public Builder addNexLogUnits(
          py.proto.Broadcastlog.PBLogUnit.Builder builderForValue) {
        if (nexLogUnitsBuilder_ == null) {
          ensureNexLogUnitsIsMutable();
          nexLogUnits_.add(builderForValue.build());
          onChanged();
        } else {
          nexLogUnitsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .PBLogUnit nexLogUnits = 6;</code>
       */
      public Builder addNexLogUnits(
          int index, py.proto.Broadcastlog.PBLogUnit.Builder builderForValue) {
        if (nexLogUnitsBuilder_ == null) {
          ensureNexLogUnitsIsMutable();
          nexLogUnits_.add(index, builderForValue.build());
          onChanged();
        } else {
          nexLogUnitsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .PBLogUnit nexLogUnits = 6;</code>
       */
      public Builder addAllNexLogUnits(
          java.lang.Iterable<? extends py.proto.Broadcastlog.PBLogUnit> values) {
        if (nexLogUnitsBuilder_ == null) {
          ensureNexLogUnitsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, nexLogUnits_);
          onChanged();
        } else {
          nexLogUnitsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .PBLogUnit nexLogUnits = 6;</code>
       */
      public Builder clearNexLogUnits() {
        if (nexLogUnitsBuilder_ == null) {
          nexLogUnits_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000020);
          onChanged();
        } else {
          nexLogUnitsBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .PBLogUnit nexLogUnits = 6;</code>
       */
      public Builder removeNexLogUnits(int index) {
        if (nexLogUnitsBuilder_ == null) {
          ensureNexLogUnitsIsMutable();
          nexLogUnits_.remove(index);
          onChanged();
        } else {
          nexLogUnitsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .PBLogUnit nexLogUnits = 6;</code>
       */
      public py.proto.Broadcastlog.PBLogUnit.Builder getNexLogUnitsBuilder(
          int index) {
        return getNexLogUnitsFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .PBLogUnit nexLogUnits = 6;</code>
       */
      public py.proto.Broadcastlog.PBLogUnitOrBuilder getNexLogUnitsOrBuilder(
          int index) {
        if (nexLogUnitsBuilder_ == null) {
          return nexLogUnits_.get(index);  } else {
          return nexLogUnitsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .PBLogUnit nexLogUnits = 6;</code>
       */
      public java.util.List<? extends py.proto.Broadcastlog.PBLogUnitOrBuilder> 
           getNexLogUnitsOrBuilderList() {
        if (nexLogUnitsBuilder_ != null) {
          return nexLogUnitsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(nexLogUnits_);
        }
      }
      /**
       * <code>repeated .PBLogUnit nexLogUnits = 6;</code>
       */
      public py.proto.Broadcastlog.PBLogUnit.Builder addNexLogUnitsBuilder() {
        return getNexLogUnitsFieldBuilder().addBuilder(
            py.proto.Broadcastlog.PBLogUnit.getDefaultInstance());
      }
      /**
       * <code>repeated .PBLogUnit nexLogUnits = 6;</code>
       */
      public py.proto.Broadcastlog.PBLogUnit.Builder addNexLogUnitsBuilder(
          int index) {
        return getNexLogUnitsFieldBuilder().addBuilder(
            index, py.proto.Broadcastlog.PBLogUnit.getDefaultInstance());
      }
      /**
       * <code>repeated .PBLogUnit nexLogUnits = 6;</code>
       */
      public java.util.List<py.proto.Broadcastlog.PBLogUnit.Builder> 
           getNexLogUnitsBuilderList() {
        return getNexLogUnitsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          py.proto.Broadcastlog.PBLogUnit, py.proto.Broadcastlog.PBLogUnit.Builder, py.proto.Broadcastlog.PBLogUnitOrBuilder> 
          getNexLogUnitsFieldBuilder() {
        if (nexLogUnitsBuilder_ == null) {
          nexLogUnitsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              py.proto.Broadcastlog.PBLogUnit, py.proto.Broadcastlog.PBLogUnit.Builder, py.proto.Broadcastlog.PBLogUnitOrBuilder>(
                  nexLogUnits_,
                  ((bitField0_ & 0x00000020) == 0x00000020),
                  getParentForChildren(),
                  isClean());
          nexLogUnits_ = null;
        }
        return nexLogUnitsBuilder_;
      }

      private int nextCopyPageUnitIndex_ ;
      /**
       * <code>optional int32 nextCopyPageUnitIndex = 7;</code>
       */
      public boolean hasNextCopyPageUnitIndex() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       * <code>optional int32 nextCopyPageUnitIndex = 7;</code>
       */
      public int getNextCopyPageUnitIndex() {
        return nextCopyPageUnitIndex_;
      }
      /**
       * <code>optional int32 nextCopyPageUnitIndex = 7;</code>
       */
      public Builder setNextCopyPageUnitIndex(int value) {
        bitField0_ |= 0x00000040;
        nextCopyPageUnitIndex_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 nextCopyPageUnitIndex = 7;</code>
       */
      public Builder clearNextCopyPageUnitIndex() {
        bitField0_ = (bitField0_ & ~0x00000040);
        nextCopyPageUnitIndex_ = 0;
        onChanged();
        return this;
      }

      private com.google.protobuf.ByteString nextBitmap_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * <code>optional bytes nextBitmap = 8;</code>
       */
      public boolean hasNextBitmap() {
        return ((bitField0_ & 0x00000080) == 0x00000080);
      }
      /**
       * <code>optional bytes nextBitmap = 8;</code>
       */
      public com.google.protobuf.ByteString getNextBitmap() {
        return nextBitmap_;
      }
      /**
       * <code>optional bytes nextBitmap = 8;</code>
       */
      public Builder setNextBitmap(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000080;
        nextBitmap_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional bytes nextBitmap = 8;</code>
       */
      public Builder clearNextBitmap() {
        bitField0_ = (bitField0_ & ~0x00000080);
        nextBitmap_ = getDefaultInstance().getNextBitmap();
        onChanged();
        return this;
      }

      private int afterNextCopyPageUnitIndex_ ;
      /**
       * <code>optional int32 afterNextCopyPageUnitIndex = 9;</code>
       */
      public boolean hasAfterNextCopyPageUnitIndex() {
        return ((bitField0_ & 0x00000100) == 0x00000100);
      }
      /**
       * <code>optional int32 afterNextCopyPageUnitIndex = 9;</code>
       */
      public int getAfterNextCopyPageUnitIndex() {
        return afterNextCopyPageUnitIndex_;
      }
      /**
       * <code>optional int32 afterNextCopyPageUnitIndex = 9;</code>
       */
      public Builder setAfterNextCopyPageUnitIndex(int value) {
        bitField0_ |= 0x00000100;
        afterNextCopyPageUnitIndex_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 afterNextCopyPageUnitIndex = 9;</code>
       */
      public Builder clearAfterNextCopyPageUnitIndex() {
        bitField0_ = (bitField0_ & ~0x00000100);
        afterNextCopyPageUnitIndex_ = 0;
        onChanged();
        return this;
      }

      private com.google.protobuf.ByteString afterNextBitmap_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * <code>optional bytes afterNextBitmap = 10;</code>
       */
      public boolean hasAfterNextBitmap() {
        return ((bitField0_ & 0x00000200) == 0x00000200);
      }
      /**
       * <code>optional bytes afterNextBitmap = 10;</code>
       */
      public com.google.protobuf.ByteString getAfterNextBitmap() {
        return afterNextBitmap_;
      }
      /**
       * <code>optional bytes afterNextBitmap = 10;</code>
       */
      public Builder setAfterNextBitmap(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000200;
        afterNextBitmap_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional bytes afterNextBitmap = 10;</code>
       */
      public Builder clearAfterNextBitmap() {
        bitField0_ = (bitField0_ & ~0x00000200);
        afterNextBitmap_ = getDefaultInstance().getAfterNextBitmap();
        onChanged();
        return this;
      }

      private boolean canSSpeedUp_ ;
      /**
       * <code>optional bool canSSpeedUp = 11;</code>
       */
      public boolean hasCanSSpeedUp() {
        return ((bitField0_ & 0x00000400) == 0x00000400);
      }
      /**
       * <code>optional bool canSSpeedUp = 11;</code>
       */
      public boolean getCanSSpeedUp() {
        return canSSpeedUp_;
      }
      /**
       * <code>optional bool canSSpeedUp = 11;</code>
       */
      public Builder setCanSSpeedUp(boolean value) {
        bitField0_ |= 0x00000400;
        canSSpeedUp_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool canSSpeedUp = 11;</code>
       */
      public Builder clearCanSSpeedUp() {
        bitField0_ = (bitField0_ & ~0x00000400);
        canSSpeedUp_ = false;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:PBCopyPageResponse)
    }

    static {
      defaultInstance = new PBCopyPageResponse(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:PBCopyPageResponse)
  }

  public interface PBCheckRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:PBCheckRequest)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>required int64 requestId = 1;</code>
     */
    boolean hasRequestId();
    /**
     * <code>required int64 requestId = 1;</code>
     */
    long getRequestId();

    /**
     * <code>required int64 volumeId = 2;</code>
     */
    boolean hasVolumeId();
    /**
     * <code>required int64 volumeId = 2;</code>
     */
    long getVolumeId();

    /**
     * <code>required int32 segIndex = 3;</code>
     */
    boolean hasSegIndex();
    /**
     * <code>required int32 segIndex = 3;</code>
     */
    int getSegIndex();

    /**
     * <code>required .RequestOption requestOption = 4;</code>
     */
    boolean hasRequestOption();
    /**
     * <code>required .RequestOption requestOption = 4;</code>
     */
    py.proto.Broadcastlog.RequestOption getRequestOption();

    /**
     * <code>optional int64 checkInstanceId = 5;</code>
     */
    boolean hasCheckInstanceId();
    /**
     * <code>optional int64 checkInstanceId = 5;</code>
     */
    long getCheckInstanceId();

    /**
     * <code>optional .PBMembership requestPBMembership = 6;</code>
     */
    boolean hasRequestPBMembership();
    /**
     * <code>optional .PBMembership requestPBMembership = 6;</code>
     */
    py.proto.Broadcastlog.PBMembership getRequestPBMembership();
    /**
     * <code>optional .PBMembership requestPBMembership = 6;</code>
     */
    py.proto.Broadcastlog.PBMembershipOrBuilder getRequestPBMembershipOrBuilder();

    /**
     * <code>optional bool memberHasGone = 7;</code>
     */
    boolean hasMemberHasGone();
    /**
     * <code>optional bool memberHasGone = 7;</code>
     */
    boolean getMemberHasGone();

    /**
     * <code>optional int64 tempPrimary = 8;</code>
     */
    boolean hasTempPrimary();
    /**
     * <code>optional int64 tempPrimary = 8;</code>
     */
    long getTempPrimary();

    /**
     * <code>optional bool streamIO = 9;</code>
     */
    boolean hasStreamIO();
    /**
     * <code>optional bool streamIO = 9;</code>
     */
    boolean getStreamIO();
  }
  /**
   * Protobuf type {@code PBCheckRequest}
   */
  public static final class PBCheckRequest extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:PBCheckRequest)
      PBCheckRequestOrBuilder {
    // Use PBCheckRequest.newBuilder() to construct.
    private PBCheckRequest(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private PBCheckRequest(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final PBCheckRequest defaultInstance;
    public static PBCheckRequest getDefaultInstance() {
      return defaultInstance;
    }

    public PBCheckRequest getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private PBCheckRequest(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              requestId_ = input.readInt64();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              volumeId_ = input.readInt64();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              segIndex_ = input.readInt32();
              break;
            }
            case 32: {
              int rawValue = input.readEnum();
              py.proto.Broadcastlog.RequestOption value = py.proto.Broadcastlog.RequestOption.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(4, rawValue);
              } else {
                bitField0_ |= 0x00000008;
                requestOption_ = value;
              }
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              checkInstanceId_ = input.readInt64();
              break;
            }
            case 50: {
              py.proto.Broadcastlog.PBMembership.Builder subBuilder = null;
              if (((bitField0_ & 0x00000020) == 0x00000020)) {
                subBuilder = requestPBMembership_.toBuilder();
              }
              requestPBMembership_ = input.readMessage(py.proto.Broadcastlog.PBMembership.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(requestPBMembership_);
                requestPBMembership_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000020;
              break;
            }
            case 56: {
              bitField0_ |= 0x00000040;
              memberHasGone_ = input.readBool();
              break;
            }
            case 64: {
              bitField0_ |= 0x00000080;
              tempPrimary_ = input.readInt64();
              break;
            }
            case 72: {
              bitField0_ |= 0x00000100;
              streamIO_ = input.readBool();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return py.proto.Broadcastlog.internal_static_PBCheckRequest_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return py.proto.Broadcastlog.internal_static_PBCheckRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              py.proto.Broadcastlog.PBCheckRequest.class, py.proto.Broadcastlog.PBCheckRequest.Builder.class);
    }

    public static com.google.protobuf.Parser<PBCheckRequest> PARSER =
        new com.google.protobuf.AbstractParser<PBCheckRequest>() {
      public PBCheckRequest parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new PBCheckRequest(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser<PBCheckRequest> getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int REQUESTID_FIELD_NUMBER = 1;
    private long requestId_;
    /**
     * <code>required int64 requestId = 1;</code>
     */
    public boolean hasRequestId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required int64 requestId = 1;</code>
     */
    public long getRequestId() {
      return requestId_;
    }

    public static final int VOLUMEID_FIELD_NUMBER = 2;
    private long volumeId_;
    /**
     * <code>required int64 volumeId = 2;</code>
     */
    public boolean hasVolumeId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required int64 volumeId = 2;</code>
     */
    public long getVolumeId() {
      return volumeId_;
    }

    public static final int SEGINDEX_FIELD_NUMBER = 3;
    private int segIndex_;
    /**
     * <code>required int32 segIndex = 3;</code>
     */
    public boolean hasSegIndex() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>required int32 segIndex = 3;</code>
     */
    public int getSegIndex() {
      return segIndex_;
    }

    public static final int REQUESTOPTION_FIELD_NUMBER = 4;
    private py.proto.Broadcastlog.RequestOption requestOption_;
    /**
     * <code>required .RequestOption requestOption = 4;</code>
     */
    public boolean hasRequestOption() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * <code>required .RequestOption requestOption = 4;</code>
     */
    public py.proto.Broadcastlog.RequestOption getRequestOption() {
      return requestOption_;
    }

    public static final int CHECKINSTANCEID_FIELD_NUMBER = 5;
    private long checkInstanceId_;
    /**
     * <code>optional int64 checkInstanceId = 5;</code>
     */
    public boolean hasCheckInstanceId() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * <code>optional int64 checkInstanceId = 5;</code>
     */
    public long getCheckInstanceId() {
      return checkInstanceId_;
    }

    public static final int REQUESTPBMEMBERSHIP_FIELD_NUMBER = 6;
    private py.proto.Broadcastlog.PBMembership requestPBMembership_;
    /**
     * <code>optional .PBMembership requestPBMembership = 6;</code>
     */
    public boolean hasRequestPBMembership() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     * <code>optional .PBMembership requestPBMembership = 6;</code>
     */
    public py.proto.Broadcastlog.PBMembership getRequestPBMembership() {
      return requestPBMembership_;
    }
    /**
     * <code>optional .PBMembership requestPBMembership = 6;</code>
     */
    public py.proto.Broadcastlog.PBMembershipOrBuilder getRequestPBMembershipOrBuilder() {
      return requestPBMembership_;
    }

    public static final int MEMBERHASGONE_FIELD_NUMBER = 7;
    private boolean memberHasGone_;
    /**
     * <code>optional bool memberHasGone = 7;</code>
     */
    public boolean hasMemberHasGone() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    /**
     * <code>optional bool memberHasGone = 7;</code>
     */
    public boolean getMemberHasGone() {
      return memberHasGone_;
    }

    public static final int TEMPPRIMARY_FIELD_NUMBER = 8;
    private long tempPrimary_;
    /**
     * <code>optional int64 tempPrimary = 8;</code>
     */
    public boolean hasTempPrimary() {
      return ((bitField0_ & 0x00000080) == 0x00000080);
    }
    /**
     * <code>optional int64 tempPrimary = 8;</code>
     */
    public long getTempPrimary() {
      return tempPrimary_;
    }

    public static final int STREAMIO_FIELD_NUMBER = 9;
    private boolean streamIO_;
    /**
     * <code>optional bool streamIO = 9;</code>
     */
    public boolean hasStreamIO() {
      return ((bitField0_ & 0x00000100) == 0x00000100);
    }
    /**
     * <code>optional bool streamIO = 9;</code>
     */
    public boolean getStreamIO() {
      return streamIO_;
    }

    private void initFields() {
      requestId_ = 0L;
      volumeId_ = 0L;
      segIndex_ = 0;
      requestOption_ = py.proto.Broadcastlog.RequestOption.CheckPrimary;
      checkInstanceId_ = 0L;
      requestPBMembership_ = py.proto.Broadcastlog.PBMembership.getDefaultInstance();
      memberHasGone_ = false;
      tempPrimary_ = 0L;
      streamIO_ = false;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasRequestId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasVolumeId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasSegIndex()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasRequestOption()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (hasRequestPBMembership()) {
        if (!getRequestPBMembership().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt64(1, requestId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt64(2, volumeId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt32(3, segIndex_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeEnum(4, requestOption_.getNumber());
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeInt64(5, checkInstanceId_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeMessage(6, requestPBMembership_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        output.writeBool(7, memberHasGone_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        output.writeInt64(8, tempPrimary_);
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        output.writeBool(9, streamIO_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, requestId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(2, volumeId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, segIndex_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(4, requestOption_.getNumber());
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(5, checkInstanceId_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(6, requestPBMembership_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(7, memberHasGone_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(8, tempPrimary_);
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(9, streamIO_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static py.proto.Broadcastlog.PBCheckRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static py.proto.Broadcastlog.PBCheckRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBCheckRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static py.proto.Broadcastlog.PBCheckRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBCheckRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static py.proto.Broadcastlog.PBCheckRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBCheckRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static py.proto.Broadcastlog.PBCheckRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBCheckRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static py.proto.Broadcastlog.PBCheckRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(py.proto.Broadcastlog.PBCheckRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code PBCheckRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:PBCheckRequest)
        py.proto.Broadcastlog.PBCheckRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return py.proto.Broadcastlog.internal_static_PBCheckRequest_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return py.proto.Broadcastlog.internal_static_PBCheckRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                py.proto.Broadcastlog.PBCheckRequest.class, py.proto.Broadcastlog.PBCheckRequest.Builder.class);
      }

      // Construct using py.proto.Broadcastlog.PBCheckRequest.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getRequestPBMembershipFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        requestId_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000001);
        volumeId_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000002);
        segIndex_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        requestOption_ = py.proto.Broadcastlog.RequestOption.CheckPrimary;
        bitField0_ = (bitField0_ & ~0x00000008);
        checkInstanceId_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000010);
        if (requestPBMembershipBuilder_ == null) {
          requestPBMembership_ = py.proto.Broadcastlog.PBMembership.getDefaultInstance();
        } else {
          requestPBMembershipBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000020);
        memberHasGone_ = false;
        bitField0_ = (bitField0_ & ~0x00000040);
        tempPrimary_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000080);
        streamIO_ = false;
        bitField0_ = (bitField0_ & ~0x00000100);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return py.proto.Broadcastlog.internal_static_PBCheckRequest_descriptor;
      }

      public py.proto.Broadcastlog.PBCheckRequest getDefaultInstanceForType() {
        return py.proto.Broadcastlog.PBCheckRequest.getDefaultInstance();
      }

      public py.proto.Broadcastlog.PBCheckRequest build() {
        py.proto.Broadcastlog.PBCheckRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public py.proto.Broadcastlog.PBCheckRequest buildPartial() {
        py.proto.Broadcastlog.PBCheckRequest result = new py.proto.Broadcastlog.PBCheckRequest(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.requestId_ = requestId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.volumeId_ = volumeId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.segIndex_ = segIndex_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.requestOption_ = requestOption_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.checkInstanceId_ = checkInstanceId_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        if (requestPBMembershipBuilder_ == null) {
          result.requestPBMembership_ = requestPBMembership_;
        } else {
          result.requestPBMembership_ = requestPBMembershipBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000040;
        }
        result.memberHasGone_ = memberHasGone_;
        if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
          to_bitField0_ |= 0x00000080;
        }
        result.tempPrimary_ = tempPrimary_;
        if (((from_bitField0_ & 0x00000100) == 0x00000100)) {
          to_bitField0_ |= 0x00000100;
        }
        result.streamIO_ = streamIO_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof py.proto.Broadcastlog.PBCheckRequest) {
          return mergeFrom((py.proto.Broadcastlog.PBCheckRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(py.proto.Broadcastlog.PBCheckRequest other) {
        if (other == py.proto.Broadcastlog.PBCheckRequest.getDefaultInstance()) return this;
        if (other.hasRequestId()) {
          setRequestId(other.getRequestId());
        }
        if (other.hasVolumeId()) {
          setVolumeId(other.getVolumeId());
        }
        if (other.hasSegIndex()) {
          setSegIndex(other.getSegIndex());
        }
        if (other.hasRequestOption()) {
          setRequestOption(other.getRequestOption());
        }
        if (other.hasCheckInstanceId()) {
          setCheckInstanceId(other.getCheckInstanceId());
        }
        if (other.hasRequestPBMembership()) {
          mergeRequestPBMembership(other.getRequestPBMembership());
        }
        if (other.hasMemberHasGone()) {
          setMemberHasGone(other.getMemberHasGone());
        }
        if (other.hasTempPrimary()) {
          setTempPrimary(other.getTempPrimary());
        }
        if (other.hasStreamIO()) {
          setStreamIO(other.getStreamIO());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasRequestId()) {
          
          return false;
        }
        if (!hasVolumeId()) {
          
          return false;
        }
        if (!hasSegIndex()) {
          
          return false;
        }
        if (!hasRequestOption()) {
          
          return false;
        }
        if (hasRequestPBMembership()) {
          if (!getRequestPBMembership().isInitialized()) {
            
            return false;
          }
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        py.proto.Broadcastlog.PBCheckRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (py.proto.Broadcastlog.PBCheckRequest) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private long requestId_ ;
      /**
       * <code>required int64 requestId = 1;</code>
       */
      public boolean hasRequestId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required int64 requestId = 1;</code>
       */
      public long getRequestId() {
        return requestId_;
      }
      /**
       * <code>required int64 requestId = 1;</code>
       */
      public Builder setRequestId(long value) {
        bitField0_ |= 0x00000001;
        requestId_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int64 requestId = 1;</code>
       */
      public Builder clearRequestId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        requestId_ = 0L;
        onChanged();
        return this;
      }

      private long volumeId_ ;
      /**
       * <code>required int64 volumeId = 2;</code>
       */
      public boolean hasVolumeId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required int64 volumeId = 2;</code>
       */
      public long getVolumeId() {
        return volumeId_;
      }
      /**
       * <code>required int64 volumeId = 2;</code>
       */
      public Builder setVolumeId(long value) {
        bitField0_ |= 0x00000002;
        volumeId_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int64 volumeId = 2;</code>
       */
      public Builder clearVolumeId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        volumeId_ = 0L;
        onChanged();
        return this;
      }

      private int segIndex_ ;
      /**
       * <code>required int32 segIndex = 3;</code>
       */
      public boolean hasSegIndex() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>required int32 segIndex = 3;</code>
       */
      public int getSegIndex() {
        return segIndex_;
      }
      /**
       * <code>required int32 segIndex = 3;</code>
       */
      public Builder setSegIndex(int value) {
        bitField0_ |= 0x00000004;
        segIndex_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int32 segIndex = 3;</code>
       */
      public Builder clearSegIndex() {
        bitField0_ = (bitField0_ & ~0x00000004);
        segIndex_ = 0;
        onChanged();
        return this;
      }

      private py.proto.Broadcastlog.RequestOption requestOption_ = py.proto.Broadcastlog.RequestOption.CheckPrimary;
      /**
       * <code>required .RequestOption requestOption = 4;</code>
       */
      public boolean hasRequestOption() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * <code>required .RequestOption requestOption = 4;</code>
       */
      public py.proto.Broadcastlog.RequestOption getRequestOption() {
        return requestOption_;
      }
      /**
       * <code>required .RequestOption requestOption = 4;</code>
       */
      public Builder setRequestOption(py.proto.Broadcastlog.RequestOption value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000008;
        requestOption_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required .RequestOption requestOption = 4;</code>
       */
      public Builder clearRequestOption() {
        bitField0_ = (bitField0_ & ~0x00000008);
        requestOption_ = py.proto.Broadcastlog.RequestOption.CheckPrimary;
        onChanged();
        return this;
      }

      private long checkInstanceId_ ;
      /**
       * <code>optional int64 checkInstanceId = 5;</code>
       */
      public boolean hasCheckInstanceId() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * <code>optional int64 checkInstanceId = 5;</code>
       */
      public long getCheckInstanceId() {
        return checkInstanceId_;
      }
      /**
       * <code>optional int64 checkInstanceId = 5;</code>
       */
      public Builder setCheckInstanceId(long value) {
        bitField0_ |= 0x00000010;
        checkInstanceId_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int64 checkInstanceId = 5;</code>
       */
      public Builder clearCheckInstanceId() {
        bitField0_ = (bitField0_ & ~0x00000010);
        checkInstanceId_ = 0L;
        onChanged();
        return this;
      }

      private py.proto.Broadcastlog.PBMembership requestPBMembership_ = py.proto.Broadcastlog.PBMembership.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          py.proto.Broadcastlog.PBMembership, py.proto.Broadcastlog.PBMembership.Builder, py.proto.Broadcastlog.PBMembershipOrBuilder> requestPBMembershipBuilder_;
      /**
       * <code>optional .PBMembership requestPBMembership = 6;</code>
       */
      public boolean hasRequestPBMembership() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * <code>optional .PBMembership requestPBMembership = 6;</code>
       */
      public py.proto.Broadcastlog.PBMembership getRequestPBMembership() {
        if (requestPBMembershipBuilder_ == null) {
          return requestPBMembership_;
        } else {
          return requestPBMembershipBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .PBMembership requestPBMembership = 6;</code>
       */
      public Builder setRequestPBMembership(py.proto.Broadcastlog.PBMembership value) {
        if (requestPBMembershipBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          requestPBMembership_ = value;
          onChanged();
        } else {
          requestPBMembershipBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000020;
        return this;
      }
      /**
       * <code>optional .PBMembership requestPBMembership = 6;</code>
       */
      public Builder setRequestPBMembership(
          py.proto.Broadcastlog.PBMembership.Builder builderForValue) {
        if (requestPBMembershipBuilder_ == null) {
          requestPBMembership_ = builderForValue.build();
          onChanged();
        } else {
          requestPBMembershipBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000020;
        return this;
      }
      /**
       * <code>optional .PBMembership requestPBMembership = 6;</code>
       */
      public Builder mergeRequestPBMembership(py.proto.Broadcastlog.PBMembership value) {
        if (requestPBMembershipBuilder_ == null) {
          if (((bitField0_ & 0x00000020) == 0x00000020) &&
              requestPBMembership_ != py.proto.Broadcastlog.PBMembership.getDefaultInstance()) {
            requestPBMembership_ =
              py.proto.Broadcastlog.PBMembership.newBuilder(requestPBMembership_).mergeFrom(value).buildPartial();
          } else {
            requestPBMembership_ = value;
          }
          onChanged();
        } else {
          requestPBMembershipBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000020;
        return this;
      }
      /**
       * <code>optional .PBMembership requestPBMembership = 6;</code>
       */
      public Builder clearRequestPBMembership() {
        if (requestPBMembershipBuilder_ == null) {
          requestPBMembership_ = py.proto.Broadcastlog.PBMembership.getDefaultInstance();
          onChanged();
        } else {
          requestPBMembershipBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000020);
        return this;
      }
      /**
       * <code>optional .PBMembership requestPBMembership = 6;</code>
       */
      public py.proto.Broadcastlog.PBMembership.Builder getRequestPBMembershipBuilder() {
        bitField0_ |= 0x00000020;
        onChanged();
        return getRequestPBMembershipFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .PBMembership requestPBMembership = 6;</code>
       */
      public py.proto.Broadcastlog.PBMembershipOrBuilder getRequestPBMembershipOrBuilder() {
        if (requestPBMembershipBuilder_ != null) {
          return requestPBMembershipBuilder_.getMessageOrBuilder();
        } else {
          return requestPBMembership_;
        }
      }
      /**
       * <code>optional .PBMembership requestPBMembership = 6;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          py.proto.Broadcastlog.PBMembership, py.proto.Broadcastlog.PBMembership.Builder, py.proto.Broadcastlog.PBMembershipOrBuilder> 
          getRequestPBMembershipFieldBuilder() {
        if (requestPBMembershipBuilder_ == null) {
          requestPBMembershipBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              py.proto.Broadcastlog.PBMembership, py.proto.Broadcastlog.PBMembership.Builder, py.proto.Broadcastlog.PBMembershipOrBuilder>(
                  getRequestPBMembership(),
                  getParentForChildren(),
                  isClean());
          requestPBMembership_ = null;
        }
        return requestPBMembershipBuilder_;
      }

      private boolean memberHasGone_ ;
      /**
       * <code>optional bool memberHasGone = 7;</code>
       */
      public boolean hasMemberHasGone() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       * <code>optional bool memberHasGone = 7;</code>
       */
      public boolean getMemberHasGone() {
        return memberHasGone_;
      }
      /**
       * <code>optional bool memberHasGone = 7;</code>
       */
      public Builder setMemberHasGone(boolean value) {
        bitField0_ |= 0x00000040;
        memberHasGone_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool memberHasGone = 7;</code>
       */
      public Builder clearMemberHasGone() {
        bitField0_ = (bitField0_ & ~0x00000040);
        memberHasGone_ = false;
        onChanged();
        return this;
      }

      private long tempPrimary_ ;
      /**
       * <code>optional int64 tempPrimary = 8;</code>
       */
      public boolean hasTempPrimary() {
        return ((bitField0_ & 0x00000080) == 0x00000080);
      }
      /**
       * <code>optional int64 tempPrimary = 8;</code>
       */
      public long getTempPrimary() {
        return tempPrimary_;
      }
      /**
       * <code>optional int64 tempPrimary = 8;</code>
       */
      public Builder setTempPrimary(long value) {
        bitField0_ |= 0x00000080;
        tempPrimary_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int64 tempPrimary = 8;</code>
       */
      public Builder clearTempPrimary() {
        bitField0_ = (bitField0_ & ~0x00000080);
        tempPrimary_ = 0L;
        onChanged();
        return this;
      }

      private boolean streamIO_ ;
      /**
       * <code>optional bool streamIO = 9;</code>
       */
      public boolean hasStreamIO() {
        return ((bitField0_ & 0x00000100) == 0x00000100);
      }
      /**
       * <code>optional bool streamIO = 9;</code>
       */
      public boolean getStreamIO() {
        return streamIO_;
      }
      /**
       * <code>optional bool streamIO = 9;</code>
       */
      public Builder setStreamIO(boolean value) {
        bitField0_ |= 0x00000100;
        streamIO_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool streamIO = 9;</code>
       */
      public Builder clearStreamIO() {
        bitField0_ = (bitField0_ & ~0x00000100);
        streamIO_ = false;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:PBCheckRequest)
    }

    static {
      defaultInstance = new PBCheckRequest(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:PBCheckRequest)
  }

  public interface PBCheckResponseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:PBCheckResponse)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>required int64 requestId = 1;</code>
     */
    boolean hasRequestId();
    /**
     * <code>required int64 requestId = 1;</code>
     */
    long getRequestId();

    /**
     * <code>optional bool reachable = 2;</code>
     */
    boolean hasReachable();
    /**
     * <code>optional bool reachable = 2;</code>
     */
    boolean getReachable();

    /**
     * <code>optional .PBMembership pbMembership = 3;</code>
     */
    boolean hasPbMembership();
    /**
     * <code>optional .PBMembership pbMembership = 3;</code>
     */
    py.proto.Broadcastlog.PBMembership getPbMembership();
    /**
     * <code>optional .PBMembership pbMembership = 3;</code>
     */
    py.proto.Broadcastlog.PBMembershipOrBuilder getPbMembershipOrBuilder();

    /**
     * <code>optional int64 pcl = 4;</code>
     */
    boolean hasPcl();
    /**
     * <code>optional int64 pcl = 4;</code>
     */
    long getPcl();

    /**
     * <code>optional int64 myInstanceId = 5;</code>
     */
    boolean hasMyInstanceId();
    /**
     * <code>optional int64 myInstanceId = 5;</code>
     */
    long getMyInstanceId();
  }
  /**
   * Protobuf type {@code PBCheckResponse}
   */
  public static final class PBCheckResponse extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:PBCheckResponse)
      PBCheckResponseOrBuilder {
    // Use PBCheckResponse.newBuilder() to construct.
    private PBCheckResponse(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private PBCheckResponse(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final PBCheckResponse defaultInstance;
    public static PBCheckResponse getDefaultInstance() {
      return defaultInstance;
    }

    public PBCheckResponse getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private PBCheckResponse(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              requestId_ = input.readInt64();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              reachable_ = input.readBool();
              break;
            }
            case 26: {
              py.proto.Broadcastlog.PBMembership.Builder subBuilder = null;
              if (((bitField0_ & 0x00000004) == 0x00000004)) {
                subBuilder = pbMembership_.toBuilder();
              }
              pbMembership_ = input.readMessage(py.proto.Broadcastlog.PBMembership.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(pbMembership_);
                pbMembership_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000004;
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              pcl_ = input.readInt64();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              myInstanceId_ = input.readInt64();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return py.proto.Broadcastlog.internal_static_PBCheckResponse_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return py.proto.Broadcastlog.internal_static_PBCheckResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              py.proto.Broadcastlog.PBCheckResponse.class, py.proto.Broadcastlog.PBCheckResponse.Builder.class);
    }

    public static com.google.protobuf.Parser<PBCheckResponse> PARSER =
        new com.google.protobuf.AbstractParser<PBCheckResponse>() {
      public PBCheckResponse parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new PBCheckResponse(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser<PBCheckResponse> getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int REQUESTID_FIELD_NUMBER = 1;
    private long requestId_;
    /**
     * <code>required int64 requestId = 1;</code>
     */
    public boolean hasRequestId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required int64 requestId = 1;</code>
     */
    public long getRequestId() {
      return requestId_;
    }

    public static final int REACHABLE_FIELD_NUMBER = 2;
    private boolean reachable_;
    /**
     * <code>optional bool reachable = 2;</code>
     */
    public boolean hasReachable() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>optional bool reachable = 2;</code>
     */
    public boolean getReachable() {
      return reachable_;
    }

    public static final int PBMEMBERSHIP_FIELD_NUMBER = 3;
    private py.proto.Broadcastlog.PBMembership pbMembership_;
    /**
     * <code>optional .PBMembership pbMembership = 3;</code>
     */
    public boolean hasPbMembership() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>optional .PBMembership pbMembership = 3;</code>
     */
    public py.proto.Broadcastlog.PBMembership getPbMembership() {
      return pbMembership_;
    }
    /**
     * <code>optional .PBMembership pbMembership = 3;</code>
     */
    public py.proto.Broadcastlog.PBMembershipOrBuilder getPbMembershipOrBuilder() {
      return pbMembership_;
    }

    public static final int PCL_FIELD_NUMBER = 4;
    private long pcl_;
    /**
     * <code>optional int64 pcl = 4;</code>
     */
    public boolean hasPcl() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * <code>optional int64 pcl = 4;</code>
     */
    public long getPcl() {
      return pcl_;
    }

    public static final int MYINSTANCEID_FIELD_NUMBER = 5;
    private long myInstanceId_;
    /**
     * <code>optional int64 myInstanceId = 5;</code>
     */
    public boolean hasMyInstanceId() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * <code>optional int64 myInstanceId = 5;</code>
     */
    public long getMyInstanceId() {
      return myInstanceId_;
    }

    private void initFields() {
      requestId_ = 0L;
      reachable_ = false;
      pbMembership_ = py.proto.Broadcastlog.PBMembership.getDefaultInstance();
      pcl_ = 0L;
      myInstanceId_ = 0L;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasRequestId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (hasPbMembership()) {
        if (!getPbMembership().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt64(1, requestId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBool(2, reachable_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeMessage(3, pbMembership_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeInt64(4, pcl_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeInt64(5, myInstanceId_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, requestId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(2, reachable_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, pbMembership_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(4, pcl_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(5, myInstanceId_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static py.proto.Broadcastlog.PBCheckResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static py.proto.Broadcastlog.PBCheckResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBCheckResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static py.proto.Broadcastlog.PBCheckResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBCheckResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static py.proto.Broadcastlog.PBCheckResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBCheckResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static py.proto.Broadcastlog.PBCheckResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBCheckResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static py.proto.Broadcastlog.PBCheckResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(py.proto.Broadcastlog.PBCheckResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code PBCheckResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:PBCheckResponse)
        py.proto.Broadcastlog.PBCheckResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return py.proto.Broadcastlog.internal_static_PBCheckResponse_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return py.proto.Broadcastlog.internal_static_PBCheckResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                py.proto.Broadcastlog.PBCheckResponse.class, py.proto.Broadcastlog.PBCheckResponse.Builder.class);
      }

      // Construct using py.proto.Broadcastlog.PBCheckResponse.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getPbMembershipFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        requestId_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000001);
        reachable_ = false;
        bitField0_ = (bitField0_ & ~0x00000002);
        if (pbMembershipBuilder_ == null) {
          pbMembership_ = py.proto.Broadcastlog.PBMembership.getDefaultInstance();
        } else {
          pbMembershipBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        pcl_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000008);
        myInstanceId_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return py.proto.Broadcastlog.internal_static_PBCheckResponse_descriptor;
      }

      public py.proto.Broadcastlog.PBCheckResponse getDefaultInstanceForType() {
        return py.proto.Broadcastlog.PBCheckResponse.getDefaultInstance();
      }

      public py.proto.Broadcastlog.PBCheckResponse build() {
        py.proto.Broadcastlog.PBCheckResponse result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public py.proto.Broadcastlog.PBCheckResponse buildPartial() {
        py.proto.Broadcastlog.PBCheckResponse result = new py.proto.Broadcastlog.PBCheckResponse(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.requestId_ = requestId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.reachable_ = reachable_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        if (pbMembershipBuilder_ == null) {
          result.pbMembership_ = pbMembership_;
        } else {
          result.pbMembership_ = pbMembershipBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.pcl_ = pcl_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.myInstanceId_ = myInstanceId_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof py.proto.Broadcastlog.PBCheckResponse) {
          return mergeFrom((py.proto.Broadcastlog.PBCheckResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(py.proto.Broadcastlog.PBCheckResponse other) {
        if (other == py.proto.Broadcastlog.PBCheckResponse.getDefaultInstance()) return this;
        if (other.hasRequestId()) {
          setRequestId(other.getRequestId());
        }
        if (other.hasReachable()) {
          setReachable(other.getReachable());
        }
        if (other.hasPbMembership()) {
          mergePbMembership(other.getPbMembership());
        }
        if (other.hasPcl()) {
          setPcl(other.getPcl());
        }
        if (other.hasMyInstanceId()) {
          setMyInstanceId(other.getMyInstanceId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasRequestId()) {
          
          return false;
        }
        if (hasPbMembership()) {
          if (!getPbMembership().isInitialized()) {
            
            return false;
          }
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        py.proto.Broadcastlog.PBCheckResponse parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (py.proto.Broadcastlog.PBCheckResponse) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private long requestId_ ;
      /**
       * <code>required int64 requestId = 1;</code>
       */
      public boolean hasRequestId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required int64 requestId = 1;</code>
       */
      public long getRequestId() {
        return requestId_;
      }
      /**
       * <code>required int64 requestId = 1;</code>
       */
      public Builder setRequestId(long value) {
        bitField0_ |= 0x00000001;
        requestId_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int64 requestId = 1;</code>
       */
      public Builder clearRequestId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        requestId_ = 0L;
        onChanged();
        return this;
      }

      private boolean reachable_ ;
      /**
       * <code>optional bool reachable = 2;</code>
       */
      public boolean hasReachable() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>optional bool reachable = 2;</code>
       */
      public boolean getReachable() {
        return reachable_;
      }
      /**
       * <code>optional bool reachable = 2;</code>
       */
      public Builder setReachable(boolean value) {
        bitField0_ |= 0x00000002;
        reachable_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool reachable = 2;</code>
       */
      public Builder clearReachable() {
        bitField0_ = (bitField0_ & ~0x00000002);
        reachable_ = false;
        onChanged();
        return this;
      }

      private py.proto.Broadcastlog.PBMembership pbMembership_ = py.proto.Broadcastlog.PBMembership.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          py.proto.Broadcastlog.PBMembership, py.proto.Broadcastlog.PBMembership.Builder, py.proto.Broadcastlog.PBMembershipOrBuilder> pbMembershipBuilder_;
      /**
       * <code>optional .PBMembership pbMembership = 3;</code>
       */
      public boolean hasPbMembership() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>optional .PBMembership pbMembership = 3;</code>
       */
      public py.proto.Broadcastlog.PBMembership getPbMembership() {
        if (pbMembershipBuilder_ == null) {
          return pbMembership_;
        } else {
          return pbMembershipBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .PBMembership pbMembership = 3;</code>
       */
      public Builder setPbMembership(py.proto.Broadcastlog.PBMembership value) {
        if (pbMembershipBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          pbMembership_ = value;
          onChanged();
        } else {
          pbMembershipBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * <code>optional .PBMembership pbMembership = 3;</code>
       */
      public Builder setPbMembership(
          py.proto.Broadcastlog.PBMembership.Builder builderForValue) {
        if (pbMembershipBuilder_ == null) {
          pbMembership_ = builderForValue.build();
          onChanged();
        } else {
          pbMembershipBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * <code>optional .PBMembership pbMembership = 3;</code>
       */
      public Builder mergePbMembership(py.proto.Broadcastlog.PBMembership value) {
        if (pbMembershipBuilder_ == null) {
          if (((bitField0_ & 0x00000004) == 0x00000004) &&
              pbMembership_ != py.proto.Broadcastlog.PBMembership.getDefaultInstance()) {
            pbMembership_ =
              py.proto.Broadcastlog.PBMembership.newBuilder(pbMembership_).mergeFrom(value).buildPartial();
          } else {
            pbMembership_ = value;
          }
          onChanged();
        } else {
          pbMembershipBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * <code>optional .PBMembership pbMembership = 3;</code>
       */
      public Builder clearPbMembership() {
        if (pbMembershipBuilder_ == null) {
          pbMembership_ = py.proto.Broadcastlog.PBMembership.getDefaultInstance();
          onChanged();
        } else {
          pbMembershipBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }
      /**
       * <code>optional .PBMembership pbMembership = 3;</code>
       */
      public py.proto.Broadcastlog.PBMembership.Builder getPbMembershipBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return getPbMembershipFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .PBMembership pbMembership = 3;</code>
       */
      public py.proto.Broadcastlog.PBMembershipOrBuilder getPbMembershipOrBuilder() {
        if (pbMembershipBuilder_ != null) {
          return pbMembershipBuilder_.getMessageOrBuilder();
        } else {
          return pbMembership_;
        }
      }
      /**
       * <code>optional .PBMembership pbMembership = 3;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          py.proto.Broadcastlog.PBMembership, py.proto.Broadcastlog.PBMembership.Builder, py.proto.Broadcastlog.PBMembershipOrBuilder> 
          getPbMembershipFieldBuilder() {
        if (pbMembershipBuilder_ == null) {
          pbMembershipBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              py.proto.Broadcastlog.PBMembership, py.proto.Broadcastlog.PBMembership.Builder, py.proto.Broadcastlog.PBMembershipOrBuilder>(
                  getPbMembership(),
                  getParentForChildren(),
                  isClean());
          pbMembership_ = null;
        }
        return pbMembershipBuilder_;
      }

      private long pcl_ ;
      /**
       * <code>optional int64 pcl = 4;</code>
       */
      public boolean hasPcl() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * <code>optional int64 pcl = 4;</code>
       */
      public long getPcl() {
        return pcl_;
      }
      /**
       * <code>optional int64 pcl = 4;</code>
       */
      public Builder setPcl(long value) {
        bitField0_ |= 0x00000008;
        pcl_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int64 pcl = 4;</code>
       */
      public Builder clearPcl() {
        bitField0_ = (bitField0_ & ~0x00000008);
        pcl_ = 0L;
        onChanged();
        return this;
      }

      private long myInstanceId_ ;
      /**
       * <code>optional int64 myInstanceId = 5;</code>
       */
      public boolean hasMyInstanceId() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * <code>optional int64 myInstanceId = 5;</code>
       */
      public long getMyInstanceId() {
        return myInstanceId_;
      }
      /**
       * <code>optional int64 myInstanceId = 5;</code>
       */
      public Builder setMyInstanceId(long value) {
        bitField0_ |= 0x00000010;
        myInstanceId_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int64 myInstanceId = 5;</code>
       */
      public Builder clearMyInstanceId() {
        bitField0_ = (bitField0_ & ~0x00000010);
        myInstanceId_ = 0L;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:PBCheckResponse)
    }

    static {
      defaultInstance = new PBCheckResponse(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:PBCheckResponse)
  }

  public interface LogUUIDAndLogIdOrBuilder extends
      // @@protoc_insertion_point(interface_extends:LogUUIDAndLogId)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>required int64 logUUID = 1;</code>
     */
    boolean hasLogUUID();
    /**
     * <code>required int64 logUUID = 1;</code>
     */
    long getLogUUID();

    /**
     * <code>required int64 logId = 2;</code>
     */
    boolean hasLogId();
    /**
     * <code>required int64 logId = 2;</code>
     */
    long getLogId();
  }
  /**
   * Protobuf type {@code LogUUIDAndLogId}
   */
  public static final class LogUUIDAndLogId extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:LogUUIDAndLogId)
      LogUUIDAndLogIdOrBuilder {
    // Use LogUUIDAndLogId.newBuilder() to construct.
    private LogUUIDAndLogId(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private LogUUIDAndLogId(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final LogUUIDAndLogId defaultInstance;
    public static LogUUIDAndLogId getDefaultInstance() {
      return defaultInstance;
    }

    public LogUUIDAndLogId getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private LogUUIDAndLogId(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              logUUID_ = input.readInt64();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              logId_ = input.readInt64();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return py.proto.Broadcastlog.internal_static_LogUUIDAndLogId_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return py.proto.Broadcastlog.internal_static_LogUUIDAndLogId_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              py.proto.Broadcastlog.LogUUIDAndLogId.class, py.proto.Broadcastlog.LogUUIDAndLogId.Builder.class);
    }

    public static com.google.protobuf.Parser<LogUUIDAndLogId> PARSER =
        new com.google.protobuf.AbstractParser<LogUUIDAndLogId>() {
      public LogUUIDAndLogId parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new LogUUIDAndLogId(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser<LogUUIDAndLogId> getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int LOGUUID_FIELD_NUMBER = 1;
    private long logUUID_;
    /**
     * <code>required int64 logUUID = 1;</code>
     */
    public boolean hasLogUUID() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required int64 logUUID = 1;</code>
     */
    public long getLogUUID() {
      return logUUID_;
    }

    public static final int LOGID_FIELD_NUMBER = 2;
    private long logId_;
    /**
     * <code>required int64 logId = 2;</code>
     */
    public boolean hasLogId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required int64 logId = 2;</code>
     */
    public long getLogId() {
      return logId_;
    }

    private void initFields() {
      logUUID_ = 0L;
      logId_ = 0L;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasLogUUID()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasLogId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt64(1, logUUID_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt64(2, logId_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, logUUID_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(2, logId_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static py.proto.Broadcastlog.LogUUIDAndLogId parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static py.proto.Broadcastlog.LogUUIDAndLogId parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static py.proto.Broadcastlog.LogUUIDAndLogId parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static py.proto.Broadcastlog.LogUUIDAndLogId parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static py.proto.Broadcastlog.LogUUIDAndLogId parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static py.proto.Broadcastlog.LogUUIDAndLogId parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static py.proto.Broadcastlog.LogUUIDAndLogId parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static py.proto.Broadcastlog.LogUUIDAndLogId parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static py.proto.Broadcastlog.LogUUIDAndLogId parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static py.proto.Broadcastlog.LogUUIDAndLogId parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(py.proto.Broadcastlog.LogUUIDAndLogId prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code LogUUIDAndLogId}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:LogUUIDAndLogId)
        py.proto.Broadcastlog.LogUUIDAndLogIdOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return py.proto.Broadcastlog.internal_static_LogUUIDAndLogId_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return py.proto.Broadcastlog.internal_static_LogUUIDAndLogId_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                py.proto.Broadcastlog.LogUUIDAndLogId.class, py.proto.Broadcastlog.LogUUIDAndLogId.Builder.class);
      }

      // Construct using py.proto.Broadcastlog.LogUUIDAndLogId.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        logUUID_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000001);
        logId_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return py.proto.Broadcastlog.internal_static_LogUUIDAndLogId_descriptor;
      }

      public py.proto.Broadcastlog.LogUUIDAndLogId getDefaultInstanceForType() {
        return py.proto.Broadcastlog.LogUUIDAndLogId.getDefaultInstance();
      }

      public py.proto.Broadcastlog.LogUUIDAndLogId build() {
        py.proto.Broadcastlog.LogUUIDAndLogId result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public py.proto.Broadcastlog.LogUUIDAndLogId buildPartial() {
        py.proto.Broadcastlog.LogUUIDAndLogId result = new py.proto.Broadcastlog.LogUUIDAndLogId(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.logUUID_ = logUUID_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.logId_ = logId_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof py.proto.Broadcastlog.LogUUIDAndLogId) {
          return mergeFrom((py.proto.Broadcastlog.LogUUIDAndLogId)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(py.proto.Broadcastlog.LogUUIDAndLogId other) {
        if (other == py.proto.Broadcastlog.LogUUIDAndLogId.getDefaultInstance()) return this;
        if (other.hasLogUUID()) {
          setLogUUID(other.getLogUUID());
        }
        if (other.hasLogId()) {
          setLogId(other.getLogId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasLogUUID()) {
          
          return false;
        }
        if (!hasLogId()) {
          
          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        py.proto.Broadcastlog.LogUUIDAndLogId parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (py.proto.Broadcastlog.LogUUIDAndLogId) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private long logUUID_ ;
      /**
       * <code>required int64 logUUID = 1;</code>
       */
      public boolean hasLogUUID() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required int64 logUUID = 1;</code>
       */
      public long getLogUUID() {
        return logUUID_;
      }
      /**
       * <code>required int64 logUUID = 1;</code>
       */
      public Builder setLogUUID(long value) {
        bitField0_ |= 0x00000001;
        logUUID_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int64 logUUID = 1;</code>
       */
      public Builder clearLogUUID() {
        bitField0_ = (bitField0_ & ~0x00000001);
        logUUID_ = 0L;
        onChanged();
        return this;
      }

      private long logId_ ;
      /**
       * <code>required int64 logId = 2;</code>
       */
      public boolean hasLogId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required int64 logId = 2;</code>
       */
      public long getLogId() {
        return logId_;
      }
      /**
       * <code>required int64 logId = 2;</code>
       */
      public Builder setLogId(long value) {
        bitField0_ |= 0x00000002;
        logId_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int64 logId = 2;</code>
       */
      public Builder clearLogId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        logId_ = 0L;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:LogUUIDAndLogId)
    }

    static {
      defaultInstance = new LogUUIDAndLogId(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:LogUUIDAndLogId)
  }

  public interface GiveYouLogIdRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:GiveYouLogIdRequest)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>required int64 requestId = 1;</code>
     */
    boolean hasRequestId();
    /**
     * <code>required int64 requestId = 1;</code>
     */
    long getRequestId();

    /**
     * <code>required int64 volumeId = 2;</code>
     */
    boolean hasVolumeId();
    /**
     * <code>required int64 volumeId = 2;</code>
     */
    long getVolumeId();

    /**
     * <code>required int32 segIndex = 3;</code>
     */
    boolean hasSegIndex();
    /**
     * <code>required int32 segIndex = 3;</code>
     */
    int getSegIndex();

    /**
     * <code>repeated .LogUUIDAndLogId logUUIDAndLogIds = 4;</code>
     */
    java.util.List<py.proto.Broadcastlog.LogUUIDAndLogId> 
        getLogUUIDAndLogIdsList();
    /**
     * <code>repeated .LogUUIDAndLogId logUUIDAndLogIds = 4;</code>
     */
    py.proto.Broadcastlog.LogUUIDAndLogId getLogUUIDAndLogIds(int index);
    /**
     * <code>repeated .LogUUIDAndLogId logUUIDAndLogIds = 4;</code>
     */
    int getLogUUIDAndLogIdsCount();
    /**
     * <code>repeated .LogUUIDAndLogId logUUIDAndLogIds = 4;</code>
     */
    java.util.List<? extends py.proto.Broadcastlog.LogUUIDAndLogIdOrBuilder> 
        getLogUUIDAndLogIdsOrBuilderList();
    /**
     * <code>repeated .LogUUIDAndLogId logUUIDAndLogIds = 4;</code>
     */
    py.proto.Broadcastlog.LogUUIDAndLogIdOrBuilder getLogUUIDAndLogIdsOrBuilder(
        int index);

    /**
     * <code>required .PBMembership pbMembership = 5;</code>
     */
    boolean hasPbMembership();
    /**
     * <code>required .PBMembership pbMembership = 5;</code>
     */
    py.proto.Broadcastlog.PBMembership getPbMembership();
    /**
     * <code>required .PBMembership pbMembership = 5;</code>
     */
    py.proto.Broadcastlog.PBMembershipOrBuilder getPbMembershipOrBuilder();

    /**
     * <code>required int64 myInstanceId = 6;</code>
     */
    boolean hasMyInstanceId();
    /**
     * <code>required int64 myInstanceId = 6;</code>
     */
    long getMyInstanceId();
  }
  /**
   * Protobuf type {@code GiveYouLogIdRequest}
   */
  public static final class GiveYouLogIdRequest extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:GiveYouLogIdRequest)
      GiveYouLogIdRequestOrBuilder {
    // Use GiveYouLogIdRequest.newBuilder() to construct.
    private GiveYouLogIdRequest(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private GiveYouLogIdRequest(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final GiveYouLogIdRequest defaultInstance;
    public static GiveYouLogIdRequest getDefaultInstance() {
      return defaultInstance;
    }

    public GiveYouLogIdRequest getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private GiveYouLogIdRequest(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              requestId_ = input.readInt64();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              volumeId_ = input.readInt64();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              segIndex_ = input.readInt32();
              break;
            }
            case 34: {
              if (!((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
                logUUIDAndLogIds_ = new java.util.LinkedList<py.proto.Broadcastlog.LogUUIDAndLogId>();
                mutable_bitField0_ |= 0x00000008;
              }
              logUUIDAndLogIds_.add(input.readMessage(py.proto.Broadcastlog.LogUUIDAndLogId.PARSER, extensionRegistry));
              break;
            }
            case 42: {
              py.proto.Broadcastlog.PBMembership.Builder subBuilder = null;
              if (((bitField0_ & 0x00000008) == 0x00000008)) {
                subBuilder = pbMembership_.toBuilder();
              }
              pbMembership_ = input.readMessage(py.proto.Broadcastlog.PBMembership.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(pbMembership_);
                pbMembership_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000008;
              break;
            }
            case 48: {
              bitField0_ |= 0x00000010;
              myInstanceId_ = input.readInt64();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
          logUUIDAndLogIds_ = java.util.Collections.unmodifiableList(logUUIDAndLogIds_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return py.proto.Broadcastlog.internal_static_GiveYouLogIdRequest_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return py.proto.Broadcastlog.internal_static_GiveYouLogIdRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              py.proto.Broadcastlog.GiveYouLogIdRequest.class, py.proto.Broadcastlog.GiveYouLogIdRequest.Builder.class);
    }

    public static com.google.protobuf.Parser<GiveYouLogIdRequest> PARSER =
        new com.google.protobuf.AbstractParser<GiveYouLogIdRequest>() {
      public GiveYouLogIdRequest parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new GiveYouLogIdRequest(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser<GiveYouLogIdRequest> getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int REQUESTID_FIELD_NUMBER = 1;
    private long requestId_;
    /**
     * <code>required int64 requestId = 1;</code>
     */
    public boolean hasRequestId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required int64 requestId = 1;</code>
     */
    public long getRequestId() {
      return requestId_;
    }

    public static final int VOLUMEID_FIELD_NUMBER = 2;
    private long volumeId_;
    /**
     * <code>required int64 volumeId = 2;</code>
     */
    public boolean hasVolumeId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required int64 volumeId = 2;</code>
     */
    public long getVolumeId() {
      return volumeId_;
    }

    public static final int SEGINDEX_FIELD_NUMBER = 3;
    private int segIndex_;
    /**
     * <code>required int32 segIndex = 3;</code>
     */
    public boolean hasSegIndex() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>required int32 segIndex = 3;</code>
     */
    public int getSegIndex() {
      return segIndex_;
    }

    public static final int LOGUUIDANDLOGIDS_FIELD_NUMBER = 4;
    private java.util.List<py.proto.Broadcastlog.LogUUIDAndLogId> logUUIDAndLogIds_;
    /**
     * <code>repeated .LogUUIDAndLogId logUUIDAndLogIds = 4;</code>
     */
    public java.util.List<py.proto.Broadcastlog.LogUUIDAndLogId> getLogUUIDAndLogIdsList() {
      return logUUIDAndLogIds_;
    }
    /**
     * <code>repeated .LogUUIDAndLogId logUUIDAndLogIds = 4;</code>
     */
    public java.util.List<? extends py.proto.Broadcastlog.LogUUIDAndLogIdOrBuilder> 
        getLogUUIDAndLogIdsOrBuilderList() {
      return logUUIDAndLogIds_;
    }
    /**
     * <code>repeated .LogUUIDAndLogId logUUIDAndLogIds = 4;</code>
     */
    public int getLogUUIDAndLogIdsCount() {
      return logUUIDAndLogIds_.size();
    }
    /**
     * <code>repeated .LogUUIDAndLogId logUUIDAndLogIds = 4;</code>
     */
    public py.proto.Broadcastlog.LogUUIDAndLogId getLogUUIDAndLogIds(int index) {
      return logUUIDAndLogIds_.get(index);
    }
    /**
     * <code>repeated .LogUUIDAndLogId logUUIDAndLogIds = 4;</code>
     */
    public py.proto.Broadcastlog.LogUUIDAndLogIdOrBuilder getLogUUIDAndLogIdsOrBuilder(
        int index) {
      return logUUIDAndLogIds_.get(index);
    }

    public static final int PBMEMBERSHIP_FIELD_NUMBER = 5;
    private py.proto.Broadcastlog.PBMembership pbMembership_;
    /**
     * <code>required .PBMembership pbMembership = 5;</code>
     */
    public boolean hasPbMembership() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * <code>required .PBMembership pbMembership = 5;</code>
     */
    public py.proto.Broadcastlog.PBMembership getPbMembership() {
      return pbMembership_;
    }
    /**
     * <code>required .PBMembership pbMembership = 5;</code>
     */
    public py.proto.Broadcastlog.PBMembershipOrBuilder getPbMembershipOrBuilder() {
      return pbMembership_;
    }

    public static final int MYINSTANCEID_FIELD_NUMBER = 6;
    private long myInstanceId_;
    /**
     * <code>required int64 myInstanceId = 6;</code>
     */
    public boolean hasMyInstanceId() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * <code>required int64 myInstanceId = 6;</code>
     */
    public long getMyInstanceId() {
      return myInstanceId_;
    }

    private void initFields() {
      requestId_ = 0L;
      volumeId_ = 0L;
      segIndex_ = 0;
      logUUIDAndLogIds_ = java.util.Collections.emptyList();
      pbMembership_ = py.proto.Broadcastlog.PBMembership.getDefaultInstance();
      myInstanceId_ = 0L;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasRequestId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasVolumeId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasSegIndex()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasPbMembership()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasMyInstanceId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      for (int i = 0; i < getLogUUIDAndLogIdsCount(); i++) {
        if (!getLogUUIDAndLogIds(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (!getPbMembership().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt64(1, requestId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt64(2, volumeId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt32(3, segIndex_);
      }
      for (int i = 0; i < logUUIDAndLogIds_.size(); i++) {
        output.writeMessage(4, logUUIDAndLogIds_.get(i));
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeMessage(5, pbMembership_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeInt64(6, myInstanceId_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, requestId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(2, volumeId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, segIndex_);
      }
      for (int i = 0; i < logUUIDAndLogIds_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, logUUIDAndLogIds_.get(i));
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, pbMembership_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(6, myInstanceId_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static py.proto.Broadcastlog.GiveYouLogIdRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static py.proto.Broadcastlog.GiveYouLogIdRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static py.proto.Broadcastlog.GiveYouLogIdRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static py.proto.Broadcastlog.GiveYouLogIdRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static py.proto.Broadcastlog.GiveYouLogIdRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static py.proto.Broadcastlog.GiveYouLogIdRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static py.proto.Broadcastlog.GiveYouLogIdRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static py.proto.Broadcastlog.GiveYouLogIdRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static py.proto.Broadcastlog.GiveYouLogIdRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static py.proto.Broadcastlog.GiveYouLogIdRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(py.proto.Broadcastlog.GiveYouLogIdRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code GiveYouLogIdRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:GiveYouLogIdRequest)
        py.proto.Broadcastlog.GiveYouLogIdRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return py.proto.Broadcastlog.internal_static_GiveYouLogIdRequest_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return py.proto.Broadcastlog.internal_static_GiveYouLogIdRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                py.proto.Broadcastlog.GiveYouLogIdRequest.class, py.proto.Broadcastlog.GiveYouLogIdRequest.Builder.class);
      }

      // Construct using py.proto.Broadcastlog.GiveYouLogIdRequest.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getLogUUIDAndLogIdsFieldBuilder();
          getPbMembershipFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        requestId_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000001);
        volumeId_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000002);
        segIndex_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        if (logUUIDAndLogIdsBuilder_ == null) {
          logUUIDAndLogIds_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000008);
        } else {
          logUUIDAndLogIdsBuilder_.clear();
        }
        if (pbMembershipBuilder_ == null) {
          pbMembership_ = py.proto.Broadcastlog.PBMembership.getDefaultInstance();
        } else {
          pbMembershipBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000010);
        myInstanceId_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000020);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return py.proto.Broadcastlog.internal_static_GiveYouLogIdRequest_descriptor;
      }

      public py.proto.Broadcastlog.GiveYouLogIdRequest getDefaultInstanceForType() {
        return py.proto.Broadcastlog.GiveYouLogIdRequest.getDefaultInstance();
      }

      public py.proto.Broadcastlog.GiveYouLogIdRequest build() {
        py.proto.Broadcastlog.GiveYouLogIdRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public py.proto.Broadcastlog.GiveYouLogIdRequest buildPartial() {
        py.proto.Broadcastlog.GiveYouLogIdRequest result = new py.proto.Broadcastlog.GiveYouLogIdRequest(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.requestId_ = requestId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.volumeId_ = volumeId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.segIndex_ = segIndex_;
        if (logUUIDAndLogIdsBuilder_ == null) {
          if (((bitField0_ & 0x00000008) == 0x00000008)) {
            logUUIDAndLogIds_ = java.util.Collections.unmodifiableList(logUUIDAndLogIds_);
            bitField0_ = (bitField0_ & ~0x00000008);
          }
          result.logUUIDAndLogIds_ = logUUIDAndLogIds_;
        } else {
          result.logUUIDAndLogIds_ = logUUIDAndLogIdsBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000008;
        }
        if (pbMembershipBuilder_ == null) {
          result.pbMembership_ = pbMembership_;
        } else {
          result.pbMembership_ = pbMembershipBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000010;
        }
        result.myInstanceId_ = myInstanceId_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof py.proto.Broadcastlog.GiveYouLogIdRequest) {
          return mergeFrom((py.proto.Broadcastlog.GiveYouLogIdRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(py.proto.Broadcastlog.GiveYouLogIdRequest other) {
        if (other == py.proto.Broadcastlog.GiveYouLogIdRequest.getDefaultInstance()) return this;
        if (other.hasRequestId()) {
          setRequestId(other.getRequestId());
        }
        if (other.hasVolumeId()) {
          setVolumeId(other.getVolumeId());
        }
        if (other.hasSegIndex()) {
          setSegIndex(other.getSegIndex());
        }
        if (logUUIDAndLogIdsBuilder_ == null) {
          if (!other.logUUIDAndLogIds_.isEmpty()) {
            if (logUUIDAndLogIds_.isEmpty()) {
              logUUIDAndLogIds_ = other.logUUIDAndLogIds_;
              bitField0_ = (bitField0_ & ~0x00000008);
            } else {
              ensureLogUUIDAndLogIdsIsMutable();
              logUUIDAndLogIds_.addAll(other.logUUIDAndLogIds_);
            }
            onChanged();
          }
        } else {
          if (!other.logUUIDAndLogIds_.isEmpty()) {
            if (logUUIDAndLogIdsBuilder_.isEmpty()) {
              logUUIDAndLogIdsBuilder_.dispose();
              logUUIDAndLogIdsBuilder_ = null;
              logUUIDAndLogIds_ = other.logUUIDAndLogIds_;
              bitField0_ = (bitField0_ & ~0x00000008);
              logUUIDAndLogIdsBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getLogUUIDAndLogIdsFieldBuilder() : null;
            } else {
              logUUIDAndLogIdsBuilder_.addAllMessages(other.logUUIDAndLogIds_);
            }
          }
        }
        if (other.hasPbMembership()) {
          mergePbMembership(other.getPbMembership());
        }
        if (other.hasMyInstanceId()) {
          setMyInstanceId(other.getMyInstanceId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasRequestId()) {
          
          return false;
        }
        if (!hasVolumeId()) {
          
          return false;
        }
        if (!hasSegIndex()) {
          
          return false;
        }
        if (!hasPbMembership()) {
          
          return false;
        }
        if (!hasMyInstanceId()) {
          
          return false;
        }
        for (int i = 0; i < getLogUUIDAndLogIdsCount(); i++) {
          if (!getLogUUIDAndLogIds(i).isInitialized()) {
            
            return false;
          }
        }
        if (!getPbMembership().isInitialized()) {
          
          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        py.proto.Broadcastlog.GiveYouLogIdRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (py.proto.Broadcastlog.GiveYouLogIdRequest) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private long requestId_ ;
      /**
       * <code>required int64 requestId = 1;</code>
       */
      public boolean hasRequestId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required int64 requestId = 1;</code>
       */
      public long getRequestId() {
        return requestId_;
      }
      /**
       * <code>required int64 requestId = 1;</code>
       */
      public Builder setRequestId(long value) {
        bitField0_ |= 0x00000001;
        requestId_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int64 requestId = 1;</code>
       */
      public Builder clearRequestId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        requestId_ = 0L;
        onChanged();
        return this;
      }

      private long volumeId_ ;
      /**
       * <code>required int64 volumeId = 2;</code>
       */
      public boolean hasVolumeId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required int64 volumeId = 2;</code>
       */
      public long getVolumeId() {
        return volumeId_;
      }
      /**
       * <code>required int64 volumeId = 2;</code>
       */
      public Builder setVolumeId(long value) {
        bitField0_ |= 0x00000002;
        volumeId_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int64 volumeId = 2;</code>
       */
      public Builder clearVolumeId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        volumeId_ = 0L;
        onChanged();
        return this;
      }

      private int segIndex_ ;
      /**
       * <code>required int32 segIndex = 3;</code>
       */
      public boolean hasSegIndex() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>required int32 segIndex = 3;</code>
       */
      public int getSegIndex() {
        return segIndex_;
      }
      /**
       * <code>required int32 segIndex = 3;</code>
       */
      public Builder setSegIndex(int value) {
        bitField0_ |= 0x00000004;
        segIndex_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int32 segIndex = 3;</code>
       */
      public Builder clearSegIndex() {
        bitField0_ = (bitField0_ & ~0x00000004);
        segIndex_ = 0;
        onChanged();
        return this;
      }

      private java.util.List<py.proto.Broadcastlog.LogUUIDAndLogId> logUUIDAndLogIds_ =
        java.util.Collections.emptyList();
      private void ensureLogUUIDAndLogIdsIsMutable() {
        if (!((bitField0_ & 0x00000008) == 0x00000008)) {
          logUUIDAndLogIds_ = new java.util.LinkedList<py.proto.Broadcastlog.LogUUIDAndLogId>(logUUIDAndLogIds_);
          bitField0_ |= 0x00000008;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          py.proto.Broadcastlog.LogUUIDAndLogId, py.proto.Broadcastlog.LogUUIDAndLogId.Builder, py.proto.Broadcastlog.LogUUIDAndLogIdOrBuilder> logUUIDAndLogIdsBuilder_;

      /**
       * <code>repeated .LogUUIDAndLogId logUUIDAndLogIds = 4;</code>
       */
      public java.util.List<py.proto.Broadcastlog.LogUUIDAndLogId> getLogUUIDAndLogIdsList() {
        if (logUUIDAndLogIdsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(logUUIDAndLogIds_);
        } else {
          return logUUIDAndLogIdsBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .LogUUIDAndLogId logUUIDAndLogIds = 4;</code>
       */
      public int getLogUUIDAndLogIdsCount() {
        if (logUUIDAndLogIdsBuilder_ == null) {
          return logUUIDAndLogIds_.size();
        } else {
          return logUUIDAndLogIdsBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .LogUUIDAndLogId logUUIDAndLogIds = 4;</code>
       */
      public py.proto.Broadcastlog.LogUUIDAndLogId getLogUUIDAndLogIds(int index) {
        if (logUUIDAndLogIdsBuilder_ == null) {
          return logUUIDAndLogIds_.get(index);
        } else {
          return logUUIDAndLogIdsBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .LogUUIDAndLogId logUUIDAndLogIds = 4;</code>
       */
      public Builder setLogUUIDAndLogIds(
          int index, py.proto.Broadcastlog.LogUUIDAndLogId value) {
        if (logUUIDAndLogIdsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureLogUUIDAndLogIdsIsMutable();
          logUUIDAndLogIds_.set(index, value);
          onChanged();
        } else {
          logUUIDAndLogIdsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .LogUUIDAndLogId logUUIDAndLogIds = 4;</code>
       */
      public Builder setLogUUIDAndLogIds(
          int index, py.proto.Broadcastlog.LogUUIDAndLogId.Builder builderForValue) {
        if (logUUIDAndLogIdsBuilder_ == null) {
          ensureLogUUIDAndLogIdsIsMutable();
          logUUIDAndLogIds_.set(index, builderForValue.build());
          onChanged();
        } else {
          logUUIDAndLogIdsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .LogUUIDAndLogId logUUIDAndLogIds = 4;</code>
       */
      public Builder addLogUUIDAndLogIds(py.proto.Broadcastlog.LogUUIDAndLogId value) {
        if (logUUIDAndLogIdsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureLogUUIDAndLogIdsIsMutable();
          logUUIDAndLogIds_.add(value);
          onChanged();
        } else {
          logUUIDAndLogIdsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .LogUUIDAndLogId logUUIDAndLogIds = 4;</code>
       */
      public Builder addLogUUIDAndLogIds(
          int index, py.proto.Broadcastlog.LogUUIDAndLogId value) {
        if (logUUIDAndLogIdsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureLogUUIDAndLogIdsIsMutable();
          logUUIDAndLogIds_.add(index, value);
          onChanged();
        } else {
          logUUIDAndLogIdsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .LogUUIDAndLogId logUUIDAndLogIds = 4;</code>
       */
      public Builder addLogUUIDAndLogIds(
          py.proto.Broadcastlog.LogUUIDAndLogId.Builder builderForValue) {
        if (logUUIDAndLogIdsBuilder_ == null) {
          ensureLogUUIDAndLogIdsIsMutable();
          logUUIDAndLogIds_.add(builderForValue.build());
          onChanged();
        } else {
          logUUIDAndLogIdsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .LogUUIDAndLogId logUUIDAndLogIds = 4;</code>
       */
      public Builder addLogUUIDAndLogIds(
          int index, py.proto.Broadcastlog.LogUUIDAndLogId.Builder builderForValue) {
        if (logUUIDAndLogIdsBuilder_ == null) {
          ensureLogUUIDAndLogIdsIsMutable();
          logUUIDAndLogIds_.add(index, builderForValue.build());
          onChanged();
        } else {
          logUUIDAndLogIdsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .LogUUIDAndLogId logUUIDAndLogIds = 4;</code>
       */
      public Builder addAllLogUUIDAndLogIds(
          java.lang.Iterable<? extends py.proto.Broadcastlog.LogUUIDAndLogId> values) {
        if (logUUIDAndLogIdsBuilder_ == null) {
          ensureLogUUIDAndLogIdsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, logUUIDAndLogIds_);
          onChanged();
        } else {
          logUUIDAndLogIdsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .LogUUIDAndLogId logUUIDAndLogIds = 4;</code>
       */
      public Builder clearLogUUIDAndLogIds() {
        if (logUUIDAndLogIdsBuilder_ == null) {
          logUUIDAndLogIds_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000008);
          onChanged();
        } else {
          logUUIDAndLogIdsBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .LogUUIDAndLogId logUUIDAndLogIds = 4;</code>
       */
      public Builder removeLogUUIDAndLogIds(int index) {
        if (logUUIDAndLogIdsBuilder_ == null) {
          ensureLogUUIDAndLogIdsIsMutable();
          logUUIDAndLogIds_.remove(index);
          onChanged();
        } else {
          logUUIDAndLogIdsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .LogUUIDAndLogId logUUIDAndLogIds = 4;</code>
       */
      public py.proto.Broadcastlog.LogUUIDAndLogId.Builder getLogUUIDAndLogIdsBuilder(
          int index) {
        return getLogUUIDAndLogIdsFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .LogUUIDAndLogId logUUIDAndLogIds = 4;</code>
       */
      public py.proto.Broadcastlog.LogUUIDAndLogIdOrBuilder getLogUUIDAndLogIdsOrBuilder(
          int index) {
        if (logUUIDAndLogIdsBuilder_ == null) {
          return logUUIDAndLogIds_.get(index);  } else {
          return logUUIDAndLogIdsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .LogUUIDAndLogId logUUIDAndLogIds = 4;</code>
       */
      public java.util.List<? extends py.proto.Broadcastlog.LogUUIDAndLogIdOrBuilder> 
           getLogUUIDAndLogIdsOrBuilderList() {
        if (logUUIDAndLogIdsBuilder_ != null) {
          return logUUIDAndLogIdsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(logUUIDAndLogIds_);
        }
      }
      /**
       * <code>repeated .LogUUIDAndLogId logUUIDAndLogIds = 4;</code>
       */
      public py.proto.Broadcastlog.LogUUIDAndLogId.Builder addLogUUIDAndLogIdsBuilder() {
        return getLogUUIDAndLogIdsFieldBuilder().addBuilder(
            py.proto.Broadcastlog.LogUUIDAndLogId.getDefaultInstance());
      }
      /**
       * <code>repeated .LogUUIDAndLogId logUUIDAndLogIds = 4;</code>
       */
      public py.proto.Broadcastlog.LogUUIDAndLogId.Builder addLogUUIDAndLogIdsBuilder(
          int index) {
        return getLogUUIDAndLogIdsFieldBuilder().addBuilder(
            index, py.proto.Broadcastlog.LogUUIDAndLogId.getDefaultInstance());
      }
      /**
       * <code>repeated .LogUUIDAndLogId logUUIDAndLogIds = 4;</code>
       */
      public java.util.List<py.proto.Broadcastlog.LogUUIDAndLogId.Builder> 
           getLogUUIDAndLogIdsBuilderList() {
        return getLogUUIDAndLogIdsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          py.proto.Broadcastlog.LogUUIDAndLogId, py.proto.Broadcastlog.LogUUIDAndLogId.Builder, py.proto.Broadcastlog.LogUUIDAndLogIdOrBuilder> 
          getLogUUIDAndLogIdsFieldBuilder() {
        if (logUUIDAndLogIdsBuilder_ == null) {
          logUUIDAndLogIdsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              py.proto.Broadcastlog.LogUUIDAndLogId, py.proto.Broadcastlog.LogUUIDAndLogId.Builder, py.proto.Broadcastlog.LogUUIDAndLogIdOrBuilder>(
                  logUUIDAndLogIds_,
                  ((bitField0_ & 0x00000008) == 0x00000008),
                  getParentForChildren(),
                  isClean());
          logUUIDAndLogIds_ = null;
        }
        return logUUIDAndLogIdsBuilder_;
      }

      private py.proto.Broadcastlog.PBMembership pbMembership_ = py.proto.Broadcastlog.PBMembership.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          py.proto.Broadcastlog.PBMembership, py.proto.Broadcastlog.PBMembership.Builder, py.proto.Broadcastlog.PBMembershipOrBuilder> pbMembershipBuilder_;
      /**
       * <code>required .PBMembership pbMembership = 5;</code>
       */
      public boolean hasPbMembership() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * <code>required .PBMembership pbMembership = 5;</code>
       */
      public py.proto.Broadcastlog.PBMembership getPbMembership() {
        if (pbMembershipBuilder_ == null) {
          return pbMembership_;
        } else {
          return pbMembershipBuilder_.getMessage();
        }
      }
      /**
       * <code>required .PBMembership pbMembership = 5;</code>
       */
      public Builder setPbMembership(py.proto.Broadcastlog.PBMembership value) {
        if (pbMembershipBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          pbMembership_ = value;
          onChanged();
        } else {
          pbMembershipBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       * <code>required .PBMembership pbMembership = 5;</code>
       */
      public Builder setPbMembership(
          py.proto.Broadcastlog.PBMembership.Builder builderForValue) {
        if (pbMembershipBuilder_ == null) {
          pbMembership_ = builderForValue.build();
          onChanged();
        } else {
          pbMembershipBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       * <code>required .PBMembership pbMembership = 5;</code>
       */
      public Builder mergePbMembership(py.proto.Broadcastlog.PBMembership value) {
        if (pbMembershipBuilder_ == null) {
          if (((bitField0_ & 0x00000010) == 0x00000010) &&
              pbMembership_ != py.proto.Broadcastlog.PBMembership.getDefaultInstance()) {
            pbMembership_ =
              py.proto.Broadcastlog.PBMembership.newBuilder(pbMembership_).mergeFrom(value).buildPartial();
          } else {
            pbMembership_ = value;
          }
          onChanged();
        } else {
          pbMembershipBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       * <code>required .PBMembership pbMembership = 5;</code>
       */
      public Builder clearPbMembership() {
        if (pbMembershipBuilder_ == null) {
          pbMembership_ = py.proto.Broadcastlog.PBMembership.getDefaultInstance();
          onChanged();
        } else {
          pbMembershipBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }
      /**
       * <code>required .PBMembership pbMembership = 5;</code>
       */
      public py.proto.Broadcastlog.PBMembership.Builder getPbMembershipBuilder() {
        bitField0_ |= 0x00000010;
        onChanged();
        return getPbMembershipFieldBuilder().getBuilder();
      }
      /**
       * <code>required .PBMembership pbMembership = 5;</code>
       */
      public py.proto.Broadcastlog.PBMembershipOrBuilder getPbMembershipOrBuilder() {
        if (pbMembershipBuilder_ != null) {
          return pbMembershipBuilder_.getMessageOrBuilder();
        } else {
          return pbMembership_;
        }
      }
      /**
       * <code>required .PBMembership pbMembership = 5;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          py.proto.Broadcastlog.PBMembership, py.proto.Broadcastlog.PBMembership.Builder, py.proto.Broadcastlog.PBMembershipOrBuilder> 
          getPbMembershipFieldBuilder() {
        if (pbMembershipBuilder_ == null) {
          pbMembershipBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              py.proto.Broadcastlog.PBMembership, py.proto.Broadcastlog.PBMembership.Builder, py.proto.Broadcastlog.PBMembershipOrBuilder>(
                  getPbMembership(),
                  getParentForChildren(),
                  isClean());
          pbMembership_ = null;
        }
        return pbMembershipBuilder_;
      }

      private long myInstanceId_ ;
      /**
       * <code>required int64 myInstanceId = 6;</code>
       */
      public boolean hasMyInstanceId() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * <code>required int64 myInstanceId = 6;</code>
       */
      public long getMyInstanceId() {
        return myInstanceId_;
      }
      /**
       * <code>required int64 myInstanceId = 6;</code>
       */
      public Builder setMyInstanceId(long value) {
        bitField0_ |= 0x00000020;
        myInstanceId_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int64 myInstanceId = 6;</code>
       */
      public Builder clearMyInstanceId() {
        bitField0_ = (bitField0_ & ~0x00000020);
        myInstanceId_ = 0L;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:GiveYouLogIdRequest)
    }

    static {
      defaultInstance = new GiveYouLogIdRequest(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:GiveYouLogIdRequest)
  }

  public interface GiveYouLogIdResponseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:GiveYouLogIdResponse)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>required int64 requestId = 1;</code>
     */
    boolean hasRequestId();
    /**
     * <code>required int64 requestId = 1;</code>
     */
    long getRequestId();

    /**
     * <code>required int64 myInstanceId = 2;</code>
     */
    boolean hasMyInstanceId();
    /**
     * <code>required int64 myInstanceId = 2;</code>
     */
    long getMyInstanceId();
  }
  /**
   * Protobuf type {@code GiveYouLogIdResponse}
   */
  public static final class GiveYouLogIdResponse extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:GiveYouLogIdResponse)
      GiveYouLogIdResponseOrBuilder {
    // Use GiveYouLogIdResponse.newBuilder() to construct.
    private GiveYouLogIdResponse(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private GiveYouLogIdResponse(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final GiveYouLogIdResponse defaultInstance;
    public static GiveYouLogIdResponse getDefaultInstance() {
      return defaultInstance;
    }

    public GiveYouLogIdResponse getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private GiveYouLogIdResponse(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              requestId_ = input.readInt64();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              myInstanceId_ = input.readInt64();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return py.proto.Broadcastlog.internal_static_GiveYouLogIdResponse_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return py.proto.Broadcastlog.internal_static_GiveYouLogIdResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              py.proto.Broadcastlog.GiveYouLogIdResponse.class, py.proto.Broadcastlog.GiveYouLogIdResponse.Builder.class);
    }

    public static com.google.protobuf.Parser<GiveYouLogIdResponse> PARSER =
        new com.google.protobuf.AbstractParser<GiveYouLogIdResponse>() {
      public GiveYouLogIdResponse parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new GiveYouLogIdResponse(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser<GiveYouLogIdResponse> getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int REQUESTID_FIELD_NUMBER = 1;
    private long requestId_;
    /**
     * <code>required int64 requestId = 1;</code>
     */
    public boolean hasRequestId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required int64 requestId = 1;</code>
     */
    public long getRequestId() {
      return requestId_;
    }

    public static final int MYINSTANCEID_FIELD_NUMBER = 2;
    private long myInstanceId_;
    /**
     * <code>required int64 myInstanceId = 2;</code>
     */
    public boolean hasMyInstanceId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required int64 myInstanceId = 2;</code>
     */
    public long getMyInstanceId() {
      return myInstanceId_;
    }

    private void initFields() {
      requestId_ = 0L;
      myInstanceId_ = 0L;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasRequestId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasMyInstanceId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt64(1, requestId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt64(2, myInstanceId_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, requestId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(2, myInstanceId_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static py.proto.Broadcastlog.GiveYouLogIdResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static py.proto.Broadcastlog.GiveYouLogIdResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static py.proto.Broadcastlog.GiveYouLogIdResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static py.proto.Broadcastlog.GiveYouLogIdResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static py.proto.Broadcastlog.GiveYouLogIdResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static py.proto.Broadcastlog.GiveYouLogIdResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static py.proto.Broadcastlog.GiveYouLogIdResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static py.proto.Broadcastlog.GiveYouLogIdResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static py.proto.Broadcastlog.GiveYouLogIdResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static py.proto.Broadcastlog.GiveYouLogIdResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(py.proto.Broadcastlog.GiveYouLogIdResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code GiveYouLogIdResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:GiveYouLogIdResponse)
        py.proto.Broadcastlog.GiveYouLogIdResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return py.proto.Broadcastlog.internal_static_GiveYouLogIdResponse_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return py.proto.Broadcastlog.internal_static_GiveYouLogIdResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                py.proto.Broadcastlog.GiveYouLogIdResponse.class, py.proto.Broadcastlog.GiveYouLogIdResponse.Builder.class);
      }

      // Construct using py.proto.Broadcastlog.GiveYouLogIdResponse.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        requestId_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000001);
        myInstanceId_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return py.proto.Broadcastlog.internal_static_GiveYouLogIdResponse_descriptor;
      }

      public py.proto.Broadcastlog.GiveYouLogIdResponse getDefaultInstanceForType() {
        return py.proto.Broadcastlog.GiveYouLogIdResponse.getDefaultInstance();
      }

      public py.proto.Broadcastlog.GiveYouLogIdResponse build() {
        py.proto.Broadcastlog.GiveYouLogIdResponse result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public py.proto.Broadcastlog.GiveYouLogIdResponse buildPartial() {
        py.proto.Broadcastlog.GiveYouLogIdResponse result = new py.proto.Broadcastlog.GiveYouLogIdResponse(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.requestId_ = requestId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.myInstanceId_ = myInstanceId_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof py.proto.Broadcastlog.GiveYouLogIdResponse) {
          return mergeFrom((py.proto.Broadcastlog.GiveYouLogIdResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(py.proto.Broadcastlog.GiveYouLogIdResponse other) {
        if (other == py.proto.Broadcastlog.GiveYouLogIdResponse.getDefaultInstance()) return this;
        if (other.hasRequestId()) {
          setRequestId(other.getRequestId());
        }
        if (other.hasMyInstanceId()) {
          setMyInstanceId(other.getMyInstanceId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasRequestId()) {
          
          return false;
        }
        if (!hasMyInstanceId()) {
          
          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        py.proto.Broadcastlog.GiveYouLogIdResponse parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (py.proto.Broadcastlog.GiveYouLogIdResponse) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private long requestId_ ;
      /**
       * <code>required int64 requestId = 1;</code>
       */
      public boolean hasRequestId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required int64 requestId = 1;</code>
       */
      public long getRequestId() {
        return requestId_;
      }
      /**
       * <code>required int64 requestId = 1;</code>
       */
      public Builder setRequestId(long value) {
        bitField0_ |= 0x00000001;
        requestId_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int64 requestId = 1;</code>
       */
      public Builder clearRequestId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        requestId_ = 0L;
        onChanged();
        return this;
      }

      private long myInstanceId_ ;
      /**
       * <code>required int64 myInstanceId = 2;</code>
       */
      public boolean hasMyInstanceId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required int64 myInstanceId = 2;</code>
       */
      public long getMyInstanceId() {
        return myInstanceId_;
      }
      /**
       * <code>required int64 myInstanceId = 2;</code>
       */
      public Builder setMyInstanceId(long value) {
        bitField0_ |= 0x00000002;
        myInstanceId_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int64 myInstanceId = 2;</code>
       */
      public Builder clearMyInstanceId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        myInstanceId_ = 0L;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:GiveYouLogIdResponse)
    }

    static {
      defaultInstance = new GiveYouLogIdResponse(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:GiveYouLogIdResponse)
  }

  public interface PBGetMembershipRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:PBGetMembershipRequest)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>required int64 requestId = 1;</code>
     */
    boolean hasRequestId();
    /**
     * <code>required int64 requestId = 1;</code>
     */
    long getRequestId();

    /**
     * <code>required int64 volumeId = 2;</code>
     */
    boolean hasVolumeId();
    /**
     * <code>required int64 volumeId = 2;</code>
     */
    long getVolumeId();

    /**
     * <code>required int32 segIndex = 3;</code>
     */
    boolean hasSegIndex();
    /**
     * <code>required int32 segIndex = 3;</code>
     */
    int getSegIndex();
  }
  /**
   * Protobuf type {@code PBGetMembershipRequest}
   */
  public static final class PBGetMembershipRequest extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:PBGetMembershipRequest)
      PBGetMembershipRequestOrBuilder {
    // Use PBGetMembershipRequest.newBuilder() to construct.
    private PBGetMembershipRequest(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private PBGetMembershipRequest(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final PBGetMembershipRequest defaultInstance;
    public static PBGetMembershipRequest getDefaultInstance() {
      return defaultInstance;
    }

    public PBGetMembershipRequest getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private PBGetMembershipRequest(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              requestId_ = input.readInt64();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              volumeId_ = input.readInt64();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              segIndex_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return py.proto.Broadcastlog.internal_static_PBGetMembershipRequest_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return py.proto.Broadcastlog.internal_static_PBGetMembershipRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              py.proto.Broadcastlog.PBGetMembershipRequest.class, py.proto.Broadcastlog.PBGetMembershipRequest.Builder.class);
    }

    public static com.google.protobuf.Parser<PBGetMembershipRequest> PARSER =
        new com.google.protobuf.AbstractParser<PBGetMembershipRequest>() {
      public PBGetMembershipRequest parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new PBGetMembershipRequest(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser<PBGetMembershipRequest> getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int REQUESTID_FIELD_NUMBER = 1;
    private long requestId_;
    /**
     * <code>required int64 requestId = 1;</code>
     */
    public boolean hasRequestId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required int64 requestId = 1;</code>
     */
    public long getRequestId() {
      return requestId_;
    }

    public static final int VOLUMEID_FIELD_NUMBER = 2;
    private long volumeId_;
    /**
     * <code>required int64 volumeId = 2;</code>
     */
    public boolean hasVolumeId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required int64 volumeId = 2;</code>
     */
    public long getVolumeId() {
      return volumeId_;
    }

    public static final int SEGINDEX_FIELD_NUMBER = 3;
    private int segIndex_;
    /**
     * <code>required int32 segIndex = 3;</code>
     */
    public boolean hasSegIndex() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>required int32 segIndex = 3;</code>
     */
    public int getSegIndex() {
      return segIndex_;
    }

    private void initFields() {
      requestId_ = 0L;
      volumeId_ = 0L;
      segIndex_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasRequestId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasVolumeId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasSegIndex()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt64(1, requestId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt64(2, volumeId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt32(3, segIndex_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, requestId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(2, volumeId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, segIndex_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static py.proto.Broadcastlog.PBGetMembershipRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static py.proto.Broadcastlog.PBGetMembershipRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBGetMembershipRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static py.proto.Broadcastlog.PBGetMembershipRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBGetMembershipRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static py.proto.Broadcastlog.PBGetMembershipRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBGetMembershipRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static py.proto.Broadcastlog.PBGetMembershipRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBGetMembershipRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static py.proto.Broadcastlog.PBGetMembershipRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(py.proto.Broadcastlog.PBGetMembershipRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code PBGetMembershipRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:PBGetMembershipRequest)
        py.proto.Broadcastlog.PBGetMembershipRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return py.proto.Broadcastlog.internal_static_PBGetMembershipRequest_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return py.proto.Broadcastlog.internal_static_PBGetMembershipRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                py.proto.Broadcastlog.PBGetMembershipRequest.class, py.proto.Broadcastlog.PBGetMembershipRequest.Builder.class);
      }

      // Construct using py.proto.Broadcastlog.PBGetMembershipRequest.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        requestId_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000001);
        volumeId_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000002);
        segIndex_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return py.proto.Broadcastlog.internal_static_PBGetMembershipRequest_descriptor;
      }

      public py.proto.Broadcastlog.PBGetMembershipRequest getDefaultInstanceForType() {
        return py.proto.Broadcastlog.PBGetMembershipRequest.getDefaultInstance();
      }

      public py.proto.Broadcastlog.PBGetMembershipRequest build() {
        py.proto.Broadcastlog.PBGetMembershipRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public py.proto.Broadcastlog.PBGetMembershipRequest buildPartial() {
        py.proto.Broadcastlog.PBGetMembershipRequest result = new py.proto.Broadcastlog.PBGetMembershipRequest(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.requestId_ = requestId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.volumeId_ = volumeId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.segIndex_ = segIndex_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof py.proto.Broadcastlog.PBGetMembershipRequest) {
          return mergeFrom((py.proto.Broadcastlog.PBGetMembershipRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(py.proto.Broadcastlog.PBGetMembershipRequest other) {
        if (other == py.proto.Broadcastlog.PBGetMembershipRequest.getDefaultInstance()) return this;
        if (other.hasRequestId()) {
          setRequestId(other.getRequestId());
        }
        if (other.hasVolumeId()) {
          setVolumeId(other.getVolumeId());
        }
        if (other.hasSegIndex()) {
          setSegIndex(other.getSegIndex());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasRequestId()) {
          
          return false;
        }
        if (!hasVolumeId()) {
          
          return false;
        }
        if (!hasSegIndex()) {
          
          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        py.proto.Broadcastlog.PBGetMembershipRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (py.proto.Broadcastlog.PBGetMembershipRequest) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private long requestId_ ;
      /**
       * <code>required int64 requestId = 1;</code>
       */
      public boolean hasRequestId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required int64 requestId = 1;</code>
       */
      public long getRequestId() {
        return requestId_;
      }
      /**
       * <code>required int64 requestId = 1;</code>
       */
      public Builder setRequestId(long value) {
        bitField0_ |= 0x00000001;
        requestId_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int64 requestId = 1;</code>
       */
      public Builder clearRequestId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        requestId_ = 0L;
        onChanged();
        return this;
      }

      private long volumeId_ ;
      /**
       * <code>required int64 volumeId = 2;</code>
       */
      public boolean hasVolumeId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required int64 volumeId = 2;</code>
       */
      public long getVolumeId() {
        return volumeId_;
      }
      /**
       * <code>required int64 volumeId = 2;</code>
       */
      public Builder setVolumeId(long value) {
        bitField0_ |= 0x00000002;
        volumeId_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int64 volumeId = 2;</code>
       */
      public Builder clearVolumeId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        volumeId_ = 0L;
        onChanged();
        return this;
      }

      private int segIndex_ ;
      /**
       * <code>required int32 segIndex = 3;</code>
       */
      public boolean hasSegIndex() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>required int32 segIndex = 3;</code>
       */
      public int getSegIndex() {
        return segIndex_;
      }
      /**
       * <code>required int32 segIndex = 3;</code>
       */
      public Builder setSegIndex(int value) {
        bitField0_ |= 0x00000004;
        segIndex_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int32 segIndex = 3;</code>
       */
      public Builder clearSegIndex() {
        bitField0_ = (bitField0_ & ~0x00000004);
        segIndex_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:PBGetMembershipRequest)
    }

    static {
      defaultInstance = new PBGetMembershipRequest(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:PBGetMembershipRequest)
  }

  public interface PBGetMembershipResponseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:PBGetMembershipResponse)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>required int64 requestId = 1;</code>
     */
    boolean hasRequestId();
    /**
     * <code>required int64 requestId = 1;</code>
     */
    long getRequestId();

    /**
     * <code>required .PBMembership pbMembership = 3;</code>
     */
    boolean hasPbMembership();
    /**
     * <code>required .PBMembership pbMembership = 3;</code>
     */
    py.proto.Broadcastlog.PBMembership getPbMembership();
    /**
     * <code>required .PBMembership pbMembership = 3;</code>
     */
    py.proto.Broadcastlog.PBMembershipOrBuilder getPbMembershipOrBuilder();
  }
  /**
   * Protobuf type {@code PBGetMembershipResponse}
   */
  public static final class PBGetMembershipResponse extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:PBGetMembershipResponse)
      PBGetMembershipResponseOrBuilder {
    // Use PBGetMembershipResponse.newBuilder() to construct.
    private PBGetMembershipResponse(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private PBGetMembershipResponse(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final PBGetMembershipResponse defaultInstance;
    public static PBGetMembershipResponse getDefaultInstance() {
      return defaultInstance;
    }

    public PBGetMembershipResponse getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private PBGetMembershipResponse(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              requestId_ = input.readInt64();
              break;
            }
            case 26: {
              py.proto.Broadcastlog.PBMembership.Builder subBuilder = null;
              if (((bitField0_ & 0x00000002) == 0x00000002)) {
                subBuilder = pbMembership_.toBuilder();
              }
              pbMembership_ = input.readMessage(py.proto.Broadcastlog.PBMembership.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(pbMembership_);
                pbMembership_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000002;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return py.proto.Broadcastlog.internal_static_PBGetMembershipResponse_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return py.proto.Broadcastlog.internal_static_PBGetMembershipResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              py.proto.Broadcastlog.PBGetMembershipResponse.class, py.proto.Broadcastlog.PBGetMembershipResponse.Builder.class);
    }

    public static com.google.protobuf.Parser<PBGetMembershipResponse> PARSER =
        new com.google.protobuf.AbstractParser<PBGetMembershipResponse>() {
      public PBGetMembershipResponse parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new PBGetMembershipResponse(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser<PBGetMembershipResponse> getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int REQUESTID_FIELD_NUMBER = 1;
    private long requestId_;
    /**
     * <code>required int64 requestId = 1;</code>
     */
    public boolean hasRequestId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required int64 requestId = 1;</code>
     */
    public long getRequestId() {
      return requestId_;
    }

    public static final int PBMEMBERSHIP_FIELD_NUMBER = 3;
    private py.proto.Broadcastlog.PBMembership pbMembership_;
    /**
     * <code>required .PBMembership pbMembership = 3;</code>
     */
    public boolean hasPbMembership() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required .PBMembership pbMembership = 3;</code>
     */
    public py.proto.Broadcastlog.PBMembership getPbMembership() {
      return pbMembership_;
    }
    /**
     * <code>required .PBMembership pbMembership = 3;</code>
     */
    public py.proto.Broadcastlog.PBMembershipOrBuilder getPbMembershipOrBuilder() {
      return pbMembership_;
    }

    private void initFields() {
      requestId_ = 0L;
      pbMembership_ = py.proto.Broadcastlog.PBMembership.getDefaultInstance();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasRequestId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasPbMembership()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getPbMembership().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt64(1, requestId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(3, pbMembership_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, requestId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, pbMembership_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static py.proto.Broadcastlog.PBGetMembershipResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static py.proto.Broadcastlog.PBGetMembershipResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBGetMembershipResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static py.proto.Broadcastlog.PBGetMembershipResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBGetMembershipResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static py.proto.Broadcastlog.PBGetMembershipResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBGetMembershipResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static py.proto.Broadcastlog.PBGetMembershipResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static py.proto.Broadcastlog.PBGetMembershipResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static py.proto.Broadcastlog.PBGetMembershipResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(py.proto.Broadcastlog.PBGetMembershipResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code PBGetMembershipResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:PBGetMembershipResponse)
        py.proto.Broadcastlog.PBGetMembershipResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return py.proto.Broadcastlog.internal_static_PBGetMembershipResponse_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return py.proto.Broadcastlog.internal_static_PBGetMembershipResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                py.proto.Broadcastlog.PBGetMembershipResponse.class, py.proto.Broadcastlog.PBGetMembershipResponse.Builder.class);
      }

      // Construct using py.proto.Broadcastlog.PBGetMembershipResponse.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getPbMembershipFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        requestId_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000001);
        if (pbMembershipBuilder_ == null) {
          pbMembership_ = py.proto.Broadcastlog.PBMembership.getDefaultInstance();
        } else {
          pbMembershipBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return py.proto.Broadcastlog.internal_static_PBGetMembershipResponse_descriptor;
      }

      public py.proto.Broadcastlog.PBGetMembershipResponse getDefaultInstanceForType() {
        return py.proto.Broadcastlog.PBGetMembershipResponse.getDefaultInstance();
      }

      public py.proto.Broadcastlog.PBGetMembershipResponse build() {
        py.proto.Broadcastlog.PBGetMembershipResponse result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public py.proto.Broadcastlog.PBGetMembershipResponse buildPartial() {
        py.proto.Broadcastlog.PBGetMembershipResponse result = new py.proto.Broadcastlog.PBGetMembershipResponse(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.requestId_ = requestId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        if (pbMembershipBuilder_ == null) {
          result.pbMembership_ = pbMembership_;
        } else {
          result.pbMembership_ = pbMembershipBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof py.proto.Broadcastlog.PBGetMembershipResponse) {
          return mergeFrom((py.proto.Broadcastlog.PBGetMembershipResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(py.proto.Broadcastlog.PBGetMembershipResponse other) {
        if (other == py.proto.Broadcastlog.PBGetMembershipResponse.getDefaultInstance()) return this;
        if (other.hasRequestId()) {
          setRequestId(other.getRequestId());
        }
        if (other.hasPbMembership()) {
          mergePbMembership(other.getPbMembership());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasRequestId()) {
          
          return false;
        }
        if (!hasPbMembership()) {
          
          return false;
        }
        if (!getPbMembership().isInitialized()) {
          
          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        py.proto.Broadcastlog.PBGetMembershipResponse parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (py.proto.Broadcastlog.PBGetMembershipResponse) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private long requestId_ ;
      /**
       * <code>required int64 requestId = 1;</code>
       */
      public boolean hasRequestId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required int64 requestId = 1;</code>
       */
      public long getRequestId() {
        return requestId_;
      }
      /**
       * <code>required int64 requestId = 1;</code>
       */
      public Builder setRequestId(long value) {
        bitField0_ |= 0x00000001;
        requestId_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int64 requestId = 1;</code>
       */
      public Builder clearRequestId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        requestId_ = 0L;
        onChanged();
        return this;
      }

      private py.proto.Broadcastlog.PBMembership pbMembership_ = py.proto.Broadcastlog.PBMembership.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          py.proto.Broadcastlog.PBMembership, py.proto.Broadcastlog.PBMembership.Builder, py.proto.Broadcastlog.PBMembershipOrBuilder> pbMembershipBuilder_;
      /**
       * <code>required .PBMembership pbMembership = 3;</code>
       */
      public boolean hasPbMembership() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required .PBMembership pbMembership = 3;</code>
       */
      public py.proto.Broadcastlog.PBMembership getPbMembership() {
        if (pbMembershipBuilder_ == null) {
          return pbMembership_;
        } else {
          return pbMembershipBuilder_.getMessage();
        }
      }
      /**
       * <code>required .PBMembership pbMembership = 3;</code>
       */
      public Builder setPbMembership(py.proto.Broadcastlog.PBMembership value) {
        if (pbMembershipBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          pbMembership_ = value;
          onChanged();
        } else {
          pbMembershipBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <code>required .PBMembership pbMembership = 3;</code>
       */
      public Builder setPbMembership(
          py.proto.Broadcastlog.PBMembership.Builder builderForValue) {
        if (pbMembershipBuilder_ == null) {
          pbMembership_ = builderForValue.build();
          onChanged();
        } else {
          pbMembershipBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <code>required .PBMembership pbMembership = 3;</code>
       */
      public Builder mergePbMembership(py.proto.Broadcastlog.PBMembership value) {
        if (pbMembershipBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002) &&
              pbMembership_ != py.proto.Broadcastlog.PBMembership.getDefaultInstance()) {
            pbMembership_ =
              py.proto.Broadcastlog.PBMembership.newBuilder(pbMembership_).mergeFrom(value).buildPartial();
          } else {
            pbMembership_ = value;
          }
          onChanged();
        } else {
          pbMembershipBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <code>required .PBMembership pbMembership = 3;</code>
       */
      public Builder clearPbMembership() {
        if (pbMembershipBuilder_ == null) {
          pbMembership_ = py.proto.Broadcastlog.PBMembership.getDefaultInstance();
          onChanged();
        } else {
          pbMembershipBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       * <code>required .PBMembership pbMembership = 3;</code>
       */
      public py.proto.Broadcastlog.PBMembership.Builder getPbMembershipBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getPbMembershipFieldBuilder().getBuilder();
      }
      /**
       * <code>required .PBMembership pbMembership = 3;</code>
       */
      public py.proto.Broadcastlog.PBMembershipOrBuilder getPbMembershipOrBuilder() {
        if (pbMembershipBuilder_ != null) {
          return pbMembershipBuilder_.getMessageOrBuilder();
        } else {
          return pbMembership_;
        }
      }
      /**
       * <code>required .PBMembership pbMembership = 3;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          py.proto.Broadcastlog.PBMembership, py.proto.Broadcastlog.PBMembership.Builder, py.proto.Broadcastlog.PBMembershipOrBuilder> 
          getPbMembershipFieldBuilder() {
        if (pbMembershipBuilder_ == null) {
          pbMembershipBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              py.proto.Broadcastlog.PBMembership, py.proto.Broadcastlog.PBMembership.Builder, py.proto.Broadcastlog.PBMembershipOrBuilder>(
                  getPbMembership(),
                  getParentForChildren(),
                  isClean());
          pbMembership_ = null;
        }
        return pbMembershipBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:PBGetMembershipResponse)
    }

    static {
      defaultInstance = new PBGetMembershipResponse(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:PBGetMembershipResponse)
  }

  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_PBBroadcastLog_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_PBBroadcastLog_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_PBBroadcastLogManager_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_PBBroadcastLogManager_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_PBWriteRequestUnit_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_PBWriteRequestUnit_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_PBMembership_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_PBMembership_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_PBWriteRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_PBWriteRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_PBWriteResponseUnit_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_PBWriteResponseUnit_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_PBWriteResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_PBWriteResponse_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_PBReadRequestUnit_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_PBReadRequestUnit_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_PBReadRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_PBReadRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_PBReadResponseUnit_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_PBReadResponseUnit_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_PBReadResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_PBReadResponse_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_PBClonePageRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_PBClonePageRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_PBClonePageResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_PBClonePageResponse_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_PBDataPage_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_PBDataPage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_PBPushToSecondariesRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_PBPushToSecondariesRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_PBPushToSecondariesResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_PBPushToSecondariesResponse_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_PBCopyPageRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_PBCopyPageRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_PBPageRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_PBPageRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_PBShadowItem_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_PBShadowItem_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_PBPageResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_PBPageResponse_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_PBLogUnit_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_PBLogUnit_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_PBCopyPageResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_PBCopyPageResponse_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_PBCheckRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_PBCheckRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_PBCheckResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_PBCheckResponse_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_LogUUIDAndLogId_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_LogUUIDAndLogId_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_GiveYouLogIdRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_GiveYouLogIdRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_GiveYouLogIdResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_GiveYouLogIdResponse_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_PBGetMembershipRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_PBGetMembershipRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_PBGetMembershipResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_PBGetMembershipResponse_fieldAccessorTable;

  public static com.google.protobuf.Descriptors.FileDescriptor
      getDescriptor() {
    return descriptor;
  }
  private static com.google.protobuf.Descriptors.FileDescriptor
      descriptor;
  static {
    java.lang.String[] descriptorData = {
      "\n4src/main/resources/protocol-model/broa" +
      "dcastlog.proto\"\245\001\n\016PBBroadcastLog\022\017\n\007log" +
      "UUID\030\001 \002(\003\022\r\n\005logId\030\002 \002(\003\022\016\n\006offset\030\003 \002(" +
      "\003\022\020\n\010checksum\030\004 \002(\003\022\016\n\006length\030\005 \002(\005\022(\n\tl" +
      "ogStatus\030\006 \002(\0162\025.PBBroadcastLogStatus\022\027\n" +
      "\017snapshotVersion\030\007 \002(\005\"R\n\025PBBroadcastLog" +
      "Manager\022\021\n\trequestId\030\001 \002(\003\022&\n\rbroadcastL" +
      "ogs\030\002 \003(\0132\017.PBBroadcastLog\"\177\n\022PBWriteReq" +
      "uestUnit\022\017\n\007logUUID\030\001 \002(\003\022\r\n\005logId\030\002 \002(\003" +
      "\022\016\n\006offset\030\003 \002(\003\022\016\n\006length\030\004 \002(\005\022\027\n\017snap",
      "shotVersion\030\005 \002(\005\022\020\n\010checksum\030\006 \001(\003\"\355\001\n\014" +
      "PBMembership\022\017\n\007primary\030\001 \002(\003\022\r\n\005epoch\030\002" +
      " \002(\005\022\022\n\ngeneration\030\003 \002(\005\022\023\n\013secondaries\030" +
      "\004 \003(\003\022\032\n\022joiningSecondaries\030\005 \003(\003\022\020\n\010arb" +
      "iters\030\006 \003(\003\022\033\n\023inactiveSecondaries\030\007 \003(\003" +
      "\022\023\n\013tempPrimary\030\010 \001(\003\022\032\n\022secondaryCandid" +
      "ate\030\t \001(\003\022\030\n\020primaryCandidate\030\n \001(\003\"\247\002\n\016" +
      "PBWriteRequest\022\021\n\trequestId\030\001 \002(\003\022\020\n\010vol" +
      "umeId\030\002 \002(\003\022\020\n\010segIndex\030\003 \002(\005\022\021\n\tfailTim" +
      "es\030\004 \002(\005\022\023\n\013zombieWrite\030\005 \002(\010\022!\n\nmembers",
      "hip\030\006 \002(\0132\r.PBMembership\022\027\n\017snapshotVers" +
      "ion\030\007 \002(\005\022)\n\014requestUnits\030\010 \003(\0132\023.PBWrit" +
      "eRequestUnit\0221\n\021broadcastManagers\030\t \003(\0132" +
      "\026.PBBroadcastLogManager\022\034\n\024unstablePrima" +
      "ryWrite\030\n \001(\010\"Y\n\023PBWriteResponseUnit\022\017\n\007" +
      "logUUID\030\001 \002(\003\022\r\n\005logId\030\002 \002(\003\022\"\n\tlogResul" +
      "t\030\003 \002(\0162\017.PBIOUnitResult\"\277\001\n\017PBWriteResp" +
      "onse\022\021\n\trequestId\030\001 \002(\003\022+\n\rresponseUnits" +
      "\030\002 \003(\0132\024.PBWriteResponseUnit\0223\n\023logManag" +
      "ersToCommit\030\003 \003(\0132\026.PBBroadcastLogManage",
      "r\022!\n\nmembership\030\004 \001(\0132\r.PBMembership\022\024\n\014" +
      "snapshotJson\030\005 \001(\t\"3\n\021PBReadRequestUnit\022" +
      "\016\n\006offset\030\001 \002(\003\022\016\n\006length\030\002 \002(\005\"\357\001\n\rPBRe" +
      "adRequest\022\021\n\trequestId\030\001 \002(\003\022\020\n\010volumeId" +
      "\030\002 \002(\003\022\020\n\010segIndex\030\003 \002(\005\022\021\n\tfailTimes\030\004 " +
      "\002(\005\022\022\n\nsnapshotId\030\005 \002(\005\022\035\n\treadCause\030\006 \002" +
      "(\0162\n.ReadCause\022!\n\nmembership\030\007 \002(\0132\r.PBM" +
      "embership\022(\n\014requestUnits\030\010 \003(\0132\022.PBRead" +
      "RequestUnit\022\024\n\014logsToCommit\030\t \003(\003\"\215\001\n\022PB" +
      "ReadResponseUnit\022\016\n\006offset\030\001 \002(\003\022\016\n\006leng",
      "th\030\002 \002(\005\022\037\n\006result\030\003 \002(\0162\017.PBIOUnitResul" +
      "t\022$\n\013logsToMerge\030\004 \003(\0132\017.PBBroadcastLog\022" +
      "\020\n\010checksum\030\005 \001(\003\"^\n\016PBReadResponse\022\021\n\tr" +
      "equestId\030\001 \002(\003\022*\n\rresponseUnits\030\002 \003(\0132\023." +
      "PBReadResponseUnit\022\r\n\005pclId\030\003 \001(\003\"r\n\022PBC" +
      "lonePageRequest\022\021\n\trequestId\030\001 \002(\003\022\020\n\010vo" +
      "lumeId\030\002 \002(\003\022\020\n\010segIndex\030\003 \002(\005\022\022\n\nsnapsh" +
      "otId\030\004 \002(\005\022\021\n\tpageIndex\030\005 \003(\005\"\257\001\n\023PBClon" +
      "ePageResponse\022\021\n\trequestId\030\001 \002(\003\022\020\n\010volu" +
      "meId\030\002 \002(\003\022\020\n\010segIndex\030\003 \002(\005\022\022\n\nsnapshot",
      "Id\030\004 \002(\005\022!\n\nmembership\030\005 \002(\0132\r.PBMembers" +
      "hip\022\017\n\007success\030\006 \002(\010\022\031\n\004page\030\007 \003(\0132\013.PBD" +
      "ataPage\"b\n\nPBDataPage\022\021\n\tpageIndex\030\001 \002(\005" +
      "\022\014\n\004data\030\002 \001(\014\022\020\n\010checksum\030\003 \001(\003\022\022\n\nsnap" +
      "shotId\030\004 \003(\005\022\r\n\005empty\030\005 \002(\010\"\225\001\n\032PBPushTo" +
      "SecondariesRequest\022\021\n\trequestId\030\001 \002(\003\022\020\n" +
      "\010volumeId\030\002 \002(\003\022\020\n\010segIndex\030\003 \002(\005\022!\n\nmem" +
      "bership\030\004 \002(\0132\r.PBMembership\022\035\n\010dataPage" +
      "\030\005 \003(\0132\013.PBDataPage\"A\n\033PBPushToSecondari" +
      "esResponse\022\021\n\trequestId\030\001 \002(\003\022\017\n\007success",
      "\030\002 \002(\010\"\221\002\n\021PBCopyPageRequest\022\021\n\trequestI" +
      "d\030\001 \002(\003\022\021\n\tsessionId\030\002 \002(\003\022\020\n\010volumeId\030\003" +
      " \002(\003\022\020\n\010segIndex\030\004 \002(\005\022\031\n\021copyPageUnitIn" +
      "dex\030\005 \002(\005\022\022\n\nerrorCount\030\006 \002(\005\022\027\n\017snapsho" +
      "tVersion\030\007 \002(\005\022!\n\006status\030\010 \002(\0162\021.PBCopyP" +
      "ageStatus\022!\n\nmembership\030\t \002(\0132\r.PBMember" +
      "ship\022$\n\014pageRequests\030\n \003(\0132\016.PBPageReque" +
      "st\"\224\001\n\rPBPageRequest\022\021\n\tpageIndex\030\001 \002(\005\022" +
      "\031\n\021currentSnapshotId\030\002 \002(\005\022\020\n\010checksum\030\003" +
      " \002(\003\022\021\n\tlastLogId\030\004 \002(\003\022\014\n\004data\030\005 \002(\014\022\"\n",
      "\013shadowTable\030\006 \003(\0132\r.PBShadowItem\"#\n\014PBS" +
      "hadowItem\022\023\n\013snapshotIds\030\001 \003(\005\"i\n\016PBPage" +
      "Response\022\021\n\tpageIndex\030\001 \002(\005\022\031\n\021currentSn" +
      "apshotId\030\002 \002(\005\022\026\n\016nextSnapshotId\030\003 \002(\005\022\021" +
      "\n\tlastLogId\030\004 \001(\003\"7\n\tPBLogUnit\022\027\n\017pageIn" +
      "dexInUnit\030\001 \002(\005\022\021\n\tlastLogId\030\002 \002(\003\"\306\002\n\022P" +
      "BCopyPageResponse\022\021\n\trequestId\030\001 \002(\003\022\021\n\t" +
      "sessionId\030\002 \002(\003\022\031\n\021copyPageUnitIndex\030\003 \002" +
      "(\005\022!\n\006status\030\004 \002(\0162\021.PBCopyPageStatus\022&\n" +
      "\rpageResponses\030\005 \003(\0132\017.PBPageResponse\022\037\n",
      "\013nexLogUnits\030\006 \003(\0132\n.PBLogUnit\022\035\n\025nextCo" +
      "pyPageUnitIndex\030\007 \001(\005\022\022\n\nnextBitmap\030\010 \001(" +
      "\014\022\"\n\032afterNextCopyPageUnitIndex\030\t \001(\005\022\027\n" +
      "\017afterNextBitmap\030\n \001(\014\022\023\n\013canSSpeedUp\030\013 " +
      "\001(\010\"\361\001\n\016PBCheckRequest\022\021\n\trequestId\030\001 \002(" +
      "\003\022\020\n\010volumeId\030\002 \002(\003\022\020\n\010segIndex\030\003 \002(\005\022%\n" +
      "\rrequestOption\030\004 \002(\0162\016.RequestOption\022\027\n\017" +
      "checkInstanceId\030\005 \001(\003\022*\n\023requestPBMember" +
      "ship\030\006 \001(\0132\r.PBMembership\022\025\n\rmemberHasGo" +
      "ne\030\007 \001(\010\022\023\n\013tempPrimary\030\010 \001(\003\022\020\n\010streamI",
      "O\030\t \001(\010\"\177\n\017PBCheckResponse\022\021\n\trequestId\030" +
      "\001 \002(\003\022\021\n\treachable\030\002 \001(\010\022#\n\014pbMembership" +
      "\030\003 \001(\0132\r.PBMembership\022\013\n\003pcl\030\004 \001(\003\022\024\n\014my" +
      "InstanceId\030\005 \001(\003\"1\n\017LogUUIDAndLogId\022\017\n\007l" +
      "ogUUID\030\001 \002(\003\022\r\n\005logId\030\002 \002(\003\"\263\001\n\023GiveYouL" +
      "ogIdRequest\022\021\n\trequestId\030\001 \002(\003\022\020\n\010volume" +
      "Id\030\002 \002(\003\022\020\n\010segIndex\030\003 \002(\005\022*\n\020logUUIDAnd" +
      "LogIds\030\004 \003(\0132\020.LogUUIDAndLogId\022#\n\014pbMemb" +
      "ership\030\005 \002(\0132\r.PBMembership\022\024\n\014myInstanc" +
      "eId\030\006 \002(\003\"?\n\024GiveYouLogIdResponse\022\021\n\treq",
      "uestId\030\001 \002(\003\022\024\n\014myInstanceId\030\002 \002(\003\"O\n\026PB" +
      "GetMembershipRequest\022\021\n\trequestId\030\001 \002(\003\022" +
      "\020\n\010volumeId\030\002 \002(\003\022\020\n\010segIndex\030\003 \002(\005\"Q\n\027P" +
      "BGetMembershipResponse\022\021\n\trequestId\030\001 \002(" +
      "\003\022#\n\014pbMembership\030\003 \002(\0132\r.PBMembership*\326" +
      "\001\n\016PBIOUnitResult\022\006\n\002OK\020\001\022\016\n\nOutOfRange\020" +
      "\002\022\022\n\016InputHasNoData\020\003\022\026\n\022ChecksumMismatc" +
      "hed\020\004\022\026\n\022SecondaryNotStable\020\005\022\010\n\004Free\020\006\022" +
      "\024\n\020PrimaryCommitted\020\007\022\023\n\017BroadcastFailed" +
      "\020\010\022\r\n\tExhausted\020\t\022\010\n\004Skip\020\n\022\r\n\tMergeFail",
      "\020\013\022\013\n\007MergeOk\020\014*_\n\024PBBroadcastLogStatus\022" +
      "\014\n\010Creating\020\001\022\013\n\007Created\020\002\022\r\n\tCommitted\020" +
      "\003\022\t\n\005Abort\020\004\022\022\n\016AbortConfirmed\020\005*M\n\rRequ" +
      "estOption\022\020\n\014CheckPrimary\020\001\022\022\n\016CheckSeco" +
      "ndary\020\002\022\026\n\022ConfirmUnreachable\020\003*<\n\tReadC" +
      "ause\022\t\n\005fetch\020\001\022\016\n\ncorrection\020\002\022\t\n\005merge" +
      "\020\003\022\t\n\005check\020\004*w\n\020PBCopyPageStatus\022\021\n\rCop" +
      "yPageStart\020\000\022\026\n\022CopyPageProcessing\020\002\022\020\n\014" +
      "CopyPageDone\020\003\022\023\n\017CopyPageTimeout\020\004\022\021\n\rC" +
      "opyPageAbort\020\005B\n\n\010py.proto"
    };
    com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
        new com.google.protobuf.Descriptors.FileDescriptor.    InternalDescriptorAssigner() {
          public com.google.protobuf.ExtensionRegistry assignDescriptors(
              com.google.protobuf.Descriptors.FileDescriptor root) {
            descriptor = root;
            return null;
          }
        };
    com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
        }, assigner);
    internal_static_PBBroadcastLog_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_PBBroadcastLog_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_PBBroadcastLog_descriptor,
        new java.lang.String[] { "LogUUID", "LogId", "Offset", "Checksum", "Length", "LogStatus", "SnapshotVersion", });
    internal_static_PBBroadcastLogManager_descriptor =
      getDescriptor().getMessageTypes().get(1);
    internal_static_PBBroadcastLogManager_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_PBBroadcastLogManager_descriptor,
        new java.lang.String[] { "RequestId", "BroadcastLogs", });
    internal_static_PBWriteRequestUnit_descriptor =
      getDescriptor().getMessageTypes().get(2);
    internal_static_PBWriteRequestUnit_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_PBWriteRequestUnit_descriptor,
        new java.lang.String[] { "LogUUID", "LogId", "Offset", "Length", "SnapshotVersion", "Checksum", });
    internal_static_PBMembership_descriptor =
      getDescriptor().getMessageTypes().get(3);
    internal_static_PBMembership_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_PBMembership_descriptor,
        new java.lang.String[] { "Primary", "Epoch", "Generation", "Secondaries", "JoiningSecondaries", "Arbiters", "InactiveSecondaries", "TempPrimary", "SecondaryCandidate", "PrimaryCandidate", });
    internal_static_PBWriteRequest_descriptor =
      getDescriptor().getMessageTypes().get(4);
    internal_static_PBWriteRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_PBWriteRequest_descriptor,
        new java.lang.String[] { "RequestId", "VolumeId", "SegIndex", "FailTimes", "ZombieWrite", "Membership", "SnapshotVersion", "RequestUnits", "BroadcastManagers", "UnstablePrimaryWrite", });
    internal_static_PBWriteResponseUnit_descriptor =
      getDescriptor().getMessageTypes().get(5);
    internal_static_PBWriteResponseUnit_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_PBWriteResponseUnit_descriptor,
        new java.lang.String[] { "LogUUID", "LogId", "LogResult", });
    internal_static_PBWriteResponse_descriptor =
      getDescriptor().getMessageTypes().get(6);
    internal_static_PBWriteResponse_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_PBWriteResponse_descriptor,
        new java.lang.String[] { "RequestId", "ResponseUnits", "LogManagersToCommit", "Membership", "SnapshotJson", });
    internal_static_PBReadRequestUnit_descriptor =
      getDescriptor().getMessageTypes().get(7);
    internal_static_PBReadRequestUnit_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_PBReadRequestUnit_descriptor,
        new java.lang.String[] { "Offset", "Length", });
    internal_static_PBReadRequest_descriptor =
      getDescriptor().getMessageTypes().get(8);
    internal_static_PBReadRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_PBReadRequest_descriptor,
        new java.lang.String[] { "RequestId", "VolumeId", "SegIndex", "FailTimes", "SnapshotId", "ReadCause", "Membership", "RequestUnits", "LogsToCommit", });
    internal_static_PBReadResponseUnit_descriptor =
      getDescriptor().getMessageTypes().get(9);
    internal_static_PBReadResponseUnit_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_PBReadResponseUnit_descriptor,
        new java.lang.String[] { "Offset", "Length", "Result", "LogsToMerge", "Checksum", });
    internal_static_PBReadResponse_descriptor =
      getDescriptor().getMessageTypes().get(10);
    internal_static_PBReadResponse_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_PBReadResponse_descriptor,
        new java.lang.String[] { "RequestId", "ResponseUnits", "PclId", });
    internal_static_PBClonePageRequest_descriptor =
      getDescriptor().getMessageTypes().get(11);
    internal_static_PBClonePageRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_PBClonePageRequest_descriptor,
        new java.lang.String[] { "RequestId", "VolumeId", "SegIndex", "SnapshotId", "PageIndex", });
    internal_static_PBClonePageResponse_descriptor =
      getDescriptor().getMessageTypes().get(12);
    internal_static_PBClonePageResponse_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_PBClonePageResponse_descriptor,
        new java.lang.String[] { "RequestId", "VolumeId", "SegIndex", "SnapshotId", "Membership", "Success", "Page", });
    internal_static_PBDataPage_descriptor =
      getDescriptor().getMessageTypes().get(13);
    internal_static_PBDataPage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_PBDataPage_descriptor,
        new java.lang.String[] { "PageIndex", "Data", "Checksum", "SnapshotId", "Empty", });
    internal_static_PBPushToSecondariesRequest_descriptor =
      getDescriptor().getMessageTypes().get(14);
    internal_static_PBPushToSecondariesRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_PBPushToSecondariesRequest_descriptor,
        new java.lang.String[] { "RequestId", "VolumeId", "SegIndex", "Membership", "DataPage", });
    internal_static_PBPushToSecondariesResponse_descriptor =
      getDescriptor().getMessageTypes().get(15);
    internal_static_PBPushToSecondariesResponse_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_PBPushToSecondariesResponse_descriptor,
        new java.lang.String[] { "RequestId", "Success", });
    internal_static_PBCopyPageRequest_descriptor =
      getDescriptor().getMessageTypes().get(16);
    internal_static_PBCopyPageRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_PBCopyPageRequest_descriptor,
        new java.lang.String[] { "RequestId", "SessionId", "VolumeId", "SegIndex", "CopyPageUnitIndex", "ErrorCount", "SnapshotVersion", "Status", "Membership", "PageRequests", });
    internal_static_PBPageRequest_descriptor =
      getDescriptor().getMessageTypes().get(17);
    internal_static_PBPageRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_PBPageRequest_descriptor,
        new java.lang.String[] { "PageIndex", "CurrentSnapshotId", "Checksum", "LastLogId", "Data", "ShadowTable", });
    internal_static_PBShadowItem_descriptor =
      getDescriptor().getMessageTypes().get(18);
    internal_static_PBShadowItem_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_PBShadowItem_descriptor,
        new java.lang.String[] { "SnapshotIds", });
    internal_static_PBPageResponse_descriptor =
      getDescriptor().getMessageTypes().get(19);
    internal_static_PBPageResponse_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_PBPageResponse_descriptor,
        new java.lang.String[] { "PageIndex", "CurrentSnapshotId", "NextSnapshotId", "LastLogId", });
    internal_static_PBLogUnit_descriptor =
      getDescriptor().getMessageTypes().get(20);
    internal_static_PBLogUnit_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_PBLogUnit_descriptor,
        new java.lang.String[] { "PageIndexInUnit", "LastLogId", });
    internal_static_PBCopyPageResponse_descriptor =
      getDescriptor().getMessageTypes().get(21);
    internal_static_PBCopyPageResponse_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_PBCopyPageResponse_descriptor,
        new java.lang.String[] { "RequestId", "SessionId", "CopyPageUnitIndex", "Status", "PageResponses", "NexLogUnits", "NextCopyPageUnitIndex", "NextBitmap", "AfterNextCopyPageUnitIndex", "AfterNextBitmap", "CanSSpeedUp", });
    internal_static_PBCheckRequest_descriptor =
      getDescriptor().getMessageTypes().get(22);
    internal_static_PBCheckRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_PBCheckRequest_descriptor,
        new java.lang.String[] { "RequestId", "VolumeId", "SegIndex", "RequestOption", "CheckInstanceId", "RequestPBMembership", "MemberHasGone", "TempPrimary", "StreamIO", });
    internal_static_PBCheckResponse_descriptor =
      getDescriptor().getMessageTypes().get(23);
    internal_static_PBCheckResponse_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_PBCheckResponse_descriptor,
        new java.lang.String[] { "RequestId", "Reachable", "PbMembership", "Pcl", "MyInstanceId", });
    internal_static_LogUUIDAndLogId_descriptor =
      getDescriptor().getMessageTypes().get(24);
    internal_static_LogUUIDAndLogId_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_LogUUIDAndLogId_descriptor,
        new java.lang.String[] { "LogUUID", "LogId", });
    internal_static_GiveYouLogIdRequest_descriptor =
      getDescriptor().getMessageTypes().get(25);
    internal_static_GiveYouLogIdRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_GiveYouLogIdRequest_descriptor,
        new java.lang.String[] { "RequestId", "VolumeId", "SegIndex", "LogUUIDAndLogIds", "PbMembership", "MyInstanceId", });
    internal_static_GiveYouLogIdResponse_descriptor =
      getDescriptor().getMessageTypes().get(26);
    internal_static_GiveYouLogIdResponse_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_GiveYouLogIdResponse_descriptor,
        new java.lang.String[] { "RequestId", "MyInstanceId", });
    internal_static_PBGetMembershipRequest_descriptor =
      getDescriptor().getMessageTypes().get(27);
    internal_static_PBGetMembershipRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_PBGetMembershipRequest_descriptor,
        new java.lang.String[] { "RequestId", "VolumeId", "SegIndex", });
    internal_static_PBGetMembershipResponse_descriptor =
      getDescriptor().getMessageTypes().get(28);
    internal_static_PBGetMembershipResponse_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_PBGetMembershipResponse_descriptor,
        new java.lang.String[] { "RequestId", "PbMembership", });
  }

  // @@protoc_insertion_point(outer_class_scope)
}
